我试图在单个视图中更新复杂模型.我正在使用ASP.NET MVC3,Entity Framework with Code first,工作单元,通用存储库模式..但是当我尝试更新模型时,我想出了这个错误:
发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致.
这是我的简化视图模型:
public class TransactionViewModel
{
public Transaction Transaction { get; set; }
public bool IsUserSubmitting { get; set; }
public IEnumerable<SelectListItem> ContractTypes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的简化复杂模型,并作为其导航属性之一的示例.Transaction与其所有导航属性具有一对一的关系:
public class Transaction
{
[Key]
public int Id { get; set; }
public int CurrentStageId { get; set; }
public int? BidId { get; set; }
public int? EvaluationId { get; set; }
public virtual Stage CurrentStage { get; set; }
public virtual Bid Bid …
Run Code Online (Sandbox Code Playgroud) 可以更新复杂模型(Transaction).复杂模型具有可以具有多个附件(文件)的属性,因此用户可以在此表单中同时上载多个文件,并且我尝试将这些文件保存到数据库中.
我已经成功将多个文件发布到服务器,请访问博客文章 http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx.
但是为了保存这些文件,以便我可以跟踪哪些文件属于复杂模型(Transaction)的哪个对象,因此稍后在适当的位置显示它们,我需要一些方法将上传的文件关联到它所属的对象到,但由于所有文件都在名称'文件'下,我不知道如何使这项工作.
这是简化的复杂模型:
public class Transaction
{
[Key]
public int Id { get; set; }
public virtual PurchaseRequisition PurchaseRequisition { get; set; }
public virtual Evaluation Evaluation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
复杂模型的属性:
public class PurchaseRequisition
{
[Key, ForeignKey("Transaction")]
public int TransactionId { get; set; }
public virtual Transaction Transaction { get; set; }
[Display(Name = "Specifications/Requisitioner's Notes")]
public virtual ICollection<Attachment> SpecsRequisitionerNotesFiles { get; set; }
}
public class Evaluation
{
[Key, ForeignKey("Transaction")]
public int TransactionId { …
Run Code Online (Sandbox Code Playgroud) 我有事务对象列表,并希望根据用户当前查看的视图按特定条件对它们进行排序.
我遇到的问题是,为了在where子句中添加条件,首先我需要检查它是否为null以防止空指针异常.这会导致过滤掉列null的记录(我希望将它们包含在列表的底部).
我如何修改查询,以便它忽略条件(where和order by),如果该列为null并仍然将它们附加到结果集?
这是一个示例查询:
transactions = transactions
.Where(t => t.PurchaseRequisition != null &&
t.Award != null && t.PurchaseRequisition.RequisitionedBy != null)
.OrderBy(t => t.Award.ContractNumber).
ThenBy(t => ToSafeString(t.Award.ContractNumber)).
ThenBy(t => ToSafeString(t.PurchaseRequisition.RequisitionedBy.FullName));
public string ToSafeString(string s)
{
return s ?? String.Empty;
}
Run Code Online (Sandbox Code Playgroud)
//我希望将PurchaseRequisition或Award为null的记录附加到结果集.
关于字符指针以及它们是如何工作的我不太清楚.
程序构建,但在运行时崩溃.
char *ab = NULL;
//ab = "abc123"; // works fine
sprintf(ab, "abc%d", 123); // this line seems to crash the program
Run Code Online (Sandbox Code Playgroud)
当sprintf接受(char*str)作为第一个参数时,我不明白这是怎么回事.
有人可以向我解释一下吗?
我接到一项任务(重新?)启用公司 iOS 应用程序的推送通知,但不知道从哪里开始。
我了解到配置文件包含有关启用哪些应用程序服务的信息,因此我登录苹果开发人员中心并进入“证书,标识符和配置文件”页面,但看到开发iOS配置文件已经启用了推送通知。
然而,在“应用程序 ID”部分中,它显示推送通知可配置,并带有黄点。
这是否意味着推送通知不再起作用?
如果是这种情况,重新生成推送通知证书可以修复它吗?或者我还必须创建一个新的配置文件吗?
谢谢!
ssl-certificate apple-push-notifications ios provisioning-profile
asp.net-mvc ×1
c ×1
c# ×1
char ×1
file-upload ×1
ios ×1
linq ×1
pointers ×1
sql ×1
string ×1
unit-of-work ×1