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

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

我的表(一对多):

Case
------------------
CaseID (int not null)
MetaColumn1 (varchar)
MetaColumn2 (varchar)
MetaColumn3 (varchar)
...


CaseInfo
------------------
CaseInfoID (int)
CaseID (int nulls allowed)
CaseInfoMeta (varchar)
...

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

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

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

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

解决方法

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

PS.命名正在清理…

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

猜你在找的MsSQL相关文章