Pet*_*Lim 0 c# entity-framework
我无法弄清楚为什么这会导致EF错误:在EF中保存时,列名"User_UserId"无效.
这是我的模型:
[DataContract(IsReference = true)]
public class User
{
[Key]
[DataMember]
public virtual Guid UserId { get; set; }
[DataMember]
public virtual string Username { get; set; }
[DataMember]
public virtual string Password { get; set; }
[DataMember]
public virtual string Email { get; set; }
[DataMember]
public virtual ICollection<FriendList> FriendLists { get; set; }
}
[DataContract(IsReference = true)]
public class FriendList
{
[Key]
[DataMember]
public virtual Guid FriendListId { get; set; }
[DataMember]
[ForeignKey("User")]
public virtual Guid UserId { get; set; }
[DataMember]
public virtual User User { get; set; }
[DataMember]
[ForeignKey("FriendUser")]
public virtual Guid FriendUserId { get; set; }
[DataMember]
public virtual User FriendUser { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
基本上,它与有朋友列表的用户有一对多的关系.
你有2种型的导航性能User在你的FriendList班级.EF无法弄清楚这些属于哪个,User.FriendLists然后为所有三个导航属性创建单独的一对多关系,其中一个具有默认外键名称User_UserId.
您可以使用以下InverseProperty属性覆盖此约定:
public class FriendList
{
// ...
[DataMember]
[InverseProperty("FriendLists")]
public virtual User User { get; set; }
// ...
}
Run Code Online (Sandbox Code Playgroud)
现在,User.FriendLists并且FriendList.User是相同的一对多的关系的端点和FriendList.FriendUser限定了第二一对多的关系(但是没有在一个端点User类).
| 归档时间: |
|
| 查看次数: |
2507 次 |
| 最近记录: |