我遇到了一个问题,我试图从数据库中的表中列出,编辑,创建或删除数据。当我这样做时出现错误:
传递的主键值的数量必须与主数量相匹配 在实体上定义的关键值。
我的问题是有一个复合键,但我无法弄清楚如何在我的模型中声明它。我做了一些搜索,我发现的任何内容都包括添加[Key, Column(Order = 0)]
但是每当我尝试添加列部分时,它都会声明Column不是命名空间的一部分。我宣布了using System.ComponentModel.DataAnnotations;
。
这是我需要复合键的模型之一:
DateID,TimeID,ContactID都构成主键
ContactID,CountyNameID,CountyStateIS都是外键
public System.DateTime DateID { get; set; }
public System.TimeSpan TimeID { get; set; }
public int ContactID { get; set; }
public string CountyNameID { get; set; }
public string CountyStateID { get; set; }
答案 0 :(得分:1)
Column属性位于 System.ComponentModel.DataAnnotations.Schema 命名空间中。
如果您使用的是Visual Studio,则可以将 CTRL +。放在一起,如果您有对程序集的引用,Visual Studio将建议命名空间。
希望它有所帮助!