微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/mssql/82885.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐