加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:16:15 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用一些具有关系的传统表,但是这些关系尚未被明确设置为主键/外键.我使用“Linq To Sql Classes”创建了一个.dbml文件,并建立了适当的Case.CaseID = CaseInfo.CaseID关联.我生成的类是CasesDataContext. 我的表(一对多): Case------------------CaseI
我正在使用一些具有关系的传统表,但是这些关系尚未被明确设置为主键/外键.我使用“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:您还需要确保两个表都具有主要定义.如果主键未在数据库中定义(并且由于任何原因而无法定义),请确保在设计器中定义它们.打开列的属性,并将其设置为主键.也就是说,如果您没有实体的主键,则实体跟踪也不起作用,删除意味着它不会更新实体.所以,请确保查看所有实体,并使用主键(如我所说的,如果它不能在数据库上,然后在设计器上).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读