Tin*_*ing 8 many-to-many entity-framework breeze
我正在使用EF5 Code First定义我的一些模型atm.我有这三个具有多对多关系的示例类:
Run Code Online (Sandbox Code Playgroud)public class Team { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Team_Id { get; set; } [MaxLength(150)] public string TeamName { get; set; } public virtual ICollection<User> Users { get; set; } [public virtual ICollection<Role> Roles { get; set; } // 1 [Timestamp] public byte[] TimeStamp { get; set; } } public class User { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int User_Id { get; set; } [MaxLength(150)] public string LoginName { get; set; } [MaxLength(150)] public string Nachname { get; set; } [MaxLength(150)] public string Vorname { get; set; } public virtual ICollection<Team> Teams { get; set; } public virtual ICollection<Role> Roles { get; set; } // 2 [Timestamp] public byte[] TimeStamp { get; set; } } public class Role { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Role_Id { get; set; } [MaxLength(50)] public string RoleName { get; set; } [Timestamp] public byte[] TimeStamp { get; set; } }
正如您所看到的,团队和用户之间存在多对多的关系.我想让它工作几个小时.我总是在VS 2012中收到错误消息"bad nav properties"的JS Exception.起初我认为是用户/团队级别的ICollections团队/用户,但它不是.问题似乎是两个电话1)和2).我删除其中任何一个它的工作原理.重命名一个并保持两个字段都处于活动状态仍会引发错误.也许任何人都知道发生了什么.
非常感谢
这个问题由SirSmackalot在我们的IdeaBlade论坛上发布.我在这里重新提出问题和答案,因为我认为它对Breeze Stack Overflow社区有用.
Tin*_*ing 14
Breeze尚不支持隐藏映射表的多对多关系.问题在于Breeze依赖于"外键"概念来跟踪关系,而这对于在实体框架中没有有效负载定义的多对多关系是不可用的.
什么工作是将多对多关系改为与链接实体的两个1对多关系.基本上,只需将映射表公开为另一种实体类型.例如:
团队 - TeamUser(1对多)
用户 - TeamUser(1对多)
我们计划在稍后的版本中支持Entity Framework的官方多对多关系,但我们需要优先考虑这一点.因此,请使用网站上的反馈机制(https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions/filters/top)为此功能请求添加/投票.这有助于我们决定下一步关注哪些功能.
归档时间: |
|
查看次数: |
3261 次 |
最近记录: |