gpt4 book ai didi

没有显式外键关系的 Linq To SQL

转载 作者:行者123 更新时间:2023-12-03 21:16:34 28 4
gpt4 key购买 nike

我正在处理一些具有关系的旧表,但这些关系尚未明确设置为主键/外键。我使用“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
不能作为 Cases 的成员使用。

我从一位同事那里听说我可能会尝试使用 ADO.Net 实体数据模型来创建我的数据上下文类,但还没有尝试过,想看看我是在浪费时间还是应该走另一条路。任何提示,链接,帮助将不胜感激。

最佳答案

返回设计器并检查关系是否正确设置。这是一个现实生活中的例子,BillStateMasters 有“CustomerMasters1”属性(国家的客户):
alt text

附言。正在清理命名...

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

关于没有显式外键关系的 Linq To SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com