我已经弄乱了我的DBML类的“设计”视图几个小时了。我有一个类,称为A,它与B,C,D和E具有一对多的关系。在生成的代码中,我可以看到A类已生成
private EntitySet<BB> _bb;
private EntitySet<CC> _cc;
private EntitySet<EE> _ee;
但是它并没有为D生成一个密钥。除D外,所有其他班级都有一个;现在它正在生成EntitySet _dd。但是为什么呢?我不需要该表具有指定的主键。
答案 0 :(得分:1)
由于.dbml文件,我假设您正在使用LINQ to SQL。 LINQ to SQL(某种程度上是Entity Framework)与不包含主键的表进行了斗争。具体来说,该表需要一个主键来实现INotifyPropertyChanged(用于跟踪特定身份更改的接口...如果没有主键,如何跟踪实体?)。为何需要这样做的一个很好的例子。
作为后续,表格没有主键是否有特定原因?它不代表您的数据模型中的实体吗?如果它是“查找”表,则可以将功能包装在存储过程中,然后通过LINQ to SQL调用存储过程。