Linq to SQL没有明确的外键关系

前端之家收集整理的这篇文章主要介绍了Linq to SQL没有明确的外键关系前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一些具有关系的传统表,但是这些关系尚未被明确设置为主键/外键.我使用“Linq To sql Classes”创建了一个.dbml文件,并建立了适当的Case.CaseID = CaseInfo.CaseID关联.我生成的类是CasesDataContext.

我的表(一对多):

  1. Case
  2. ------------------
  3. CaseID (int not null)
  4. MetaColumn1 (varchar)
  5. MetaColumn2 (varchar)
  6. MetaColumn3 (varchar)
  7. ...
  8.  
  9.  
  10. CaseInfo
  11. ------------------
  12. CaseInfoID (int)
  13. CaseID (int nulls allowed)
  14. CaseInfoMeta (varchar)
  15. ...

我是LinqTosql的新手,我在做麻烦

  1. CasesDataContext db = new CasesDataContext();
  2. var Cases = from c in db.Cases
  3. where c.CaseInfo.CaseInfoMeta == "some value"
  4. select c;

(编辑)我的问题是CaseInfo或CaseInfos
不能作为案件的成员.

我听到一个同事,我可以尝试ADO.Net实体数据模型来创建我的数据上下文类,但还没有尝试过,想看看我是否会浪费我的时间,或者我应该走另一条路线.任何提示,链接,帮助将不胜感激.

解决方法

回到设计师,检查关系是否正确设置.这是一个现实生活中的例子,BillStateMaster拥有“CustomerMasters1”属性(州的客户):
alt text http://i43.tinypic.com/ohl00l.jpg

PS.命名正在清理…

更新1:您还需要确保两个表都具有主要定义.如果主键未在数据库中定义(并且由于任何原因而无法定义),请确保在设计器中定义它们.打开列的属性,并将其设置为主键.也就是说,如果您没有实体的主键,则实体跟踪也不起作用,删除意味着它不会更新实体.所以,请确保查看所有实体,并使用主键(如我所说的,如果它不能在数据库上,然后在设计器上).

猜你在找的MsSQL相关文章