我使用ASP.NET MVC 3与实体框架4代码的第一种方法,每次我尝试使用模型上的键属性指定复合键时,我会得到这个错误:实体框架复合键代码首先导致模型验证错误
System.Data.Edm.EdmAssociationConstraint: : Number of Properties in the Dependent and Principal Role in a relationship constraint must be exactly identical.
我使用的列属性来区分主键像这样的顺序:
public class Game
{
[Key, Column(Order=0)]
public Guid GameId { get; set; }
[Key, Column(Order=1)]
public string Name { get; set; }
public string Description { get; set; }
public Game()
{
this.GameId = Guid.NewGuid();
}
}
我想知道是否有另一种方法来创建组合键,或也许有办法阻止这个错误?我知道可以向OnModelBuild事件添加逻辑,但如果可能的话,我宁愿使用模型上的关键属性。
看起来您正在使用关联属性(GameId?)之一。 Game有其他实体有什么关联? –
我正在构建一个游戏数据库,其中包含来自Xbox Live,PSN和Steam的游戏。游戏实体是这些网络游戏中每一个游戏的超级类别。此外,我将使用游戏实体来表示不特定于在线网络以及SNES或NES等较旧游戏机的游戏。 –