使用linq2sql的关系/外键?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用linq2sql的关系/外键?相关的知识,希望对你有一定的参考价值。
有人可以帮忙吗?
我在我的预订(prim键)和保险(用于键)表之间创建了一个关系,并导入到linq2sql并检查我自动创建的c#文件,确定我有预订.MyFieldNames等等PLUS reservation.Insurance是我的关系但是reservation.Insurance我看不到保险的字段名称 - 我错过了什么吗?
我是否必须拨打GetInsurances或其他什么?我没有看到任何东西..实际上保险属于Linq.entityset ???
此外,我希望创建我的预订表(这很好,很容易),然后从Ilist或其他东西自动“注入”保险(即1对多)。
这是不可能的,
任何帮助真的很感激
附:我确实通过T4工具箱创建了我自动创建的c#dto文件,但这不应该有任何区别。我只为每个实体都有一个单独的文件..
不是100%肯定你的意思“我什么也看不见”。
假设你有一张Reservations
表和一张引用“预订”的Insurance
表 - 这是什么关系? 1:1? 1:很多?哪个方向?你可以发布你的DBML设计师表面的截图吗? (将其上传到www.tinypic.com并在您的问题中将链接作为图像包含在内)?
“Reservations”类将包含“Insurance”(EntityRef<Insurance>
)的一个实例或“Insurance”对象的列表(EntitySet)(EntitySet<Insurance>
) - 取决于关系的性质 - 您应该能够在代码中导航它们,例如
string foo = myReservation.Insurance.CustomerName; // or whatever
你不会在设计师的表面上看到那些 - 这只是你设计界面上另一个类的链接,对吗?
反过来也是如此 - 如果保险只与一个保留相关联,您应该能够(在代码中)做:
string bar = myInsuranceObject.Reservation.MyFieldName1; // or whatever
所以我不太清楚你真正指的是哪种情况 - 你能详细说明你的问题并使其更清楚吗?
基于NerdDinner sample,我将尝试详细说明。查看DBML设计界面:
在这里,您没有看到任何用于在对象之间来回移动的属性。但是你确实看到“RSVP”类有一个“DinnerID”外键,它将它链接到“Dinner”类。所以这是一个1:n的关系:一个晚餐有n个RSVP,每个RSVP只有一个晚餐。
在您的代码中,您现在可以看到这些创建的属性 - 首先查看RSVP类:
你可以看到RSVP
类有一个EntityRef<Dinner>
- 一个参考(链接)到一个Dinner
- 这个RSVP的晚餐。
另一方面,Dinner
课程列出了所有计划参加晚宴的极客的RSVP!
因此,在Dinner
课程中,您有一个EntitySet<RSVP>
- 一个完整的与会者列表,您可以在使用Dinner
课程时导航。
这会让事情变得更清楚吗?
渣
以上是关于使用linq2sql的关系/外键?的主要内容,如果未能解决你的问题,请参考以下文章