1

任何人都可以帮忙吗?

我在我的 Reservation(prim key) 和 Insurance(for key) 表之间创建了一个关系,并导入到 linq2sql 并检查了我自动创建的 c# 文件,果然我有 reservation.MyFieldNames 等 PLUS reservation.Insurance 这是我的关系但是reservation.Insurance 我看不到 Insurance 的字段名称 - 我错过了什么吗?

我必须打电话给GetInsurances或其他什么吗?我什么也没看到.. 事实上保险是 Linq.entityset 类型的???

我也希望创建我的预订表(这很好而且很容易),然后从 Ilist 或其他东西自动“注入”保险(即 1 到多个)..

这不可能吗,

任何帮助都非常感谢

ps 我确实通过 T4 Toolbox 创建了我自动创建的 c# dto 文件,但这应该没有任何区别。我只是为每个实体有一个单独的文件..

4

1 回答 1

4

不是 100% 确定“我什么都没看到”是什么意思。

假设你有一张Reservations桌子和一张Insurance引用“预订”的桌子——这是一种什么样的关系?1:1 ? 1:很多?哪条路??您可以发布您的 DBML 设计器表面的屏幕截图吗?(将其上传到 www.tinypic.com 并将链接作为图片包含在您的问题中)?

“Reservations”类将包含一个“Insurance”实例(EntityRef<Insurance>)或“Ins​​urance”对象列表(EntitySet)(EntitySet<Insurance>取决于关系的性质),您应该能够在代码中导航这些对象,例如

string foo =  myReservation.Insurance.CustomerName; // or whatever 

您不会在设计器表面上看到那些 - 这只是指向您设计表面上的另一个类的链接,对吗?

反过来也是如此 - 如果保险与一个预订相关联,您应该能够(在代码中)执行以下操作:

 string bar = myInsuranceObject.Reservation.MyFieldName1; // or whatever

因此,我不太清楚您真正指的是哪种情况-您能否详细说明您的问题并使其更清楚?

基于NerdDinner 示例,我将尝试详细说明。查看 DBML 设计界面:

替代文字

在这里,您看不到任何用于在对象之间来回移动的属性。但是您确实看到“RSVP”类有一个“DinnerID”外键,它将它链接到“Dinner”类。所以这是一个 1:n 的关系:一个晚餐有 n 个 RSVP,每个 RSVP 都针对一个晚餐。

在您的代码中,您现在可以看到这些创建的属性 - 首先检查 RSVP 类:

替代文字

您可以看到该RSVP课程有一个EntityRef<Dinner>- 一个确切的参考(链接)Dinner- 此 RSVP 用于的晚餐。

另一方面,Dinner全班有所有计划参加晚宴的极客的完整 RSVP 列表!

替代文字

因此,在Dinner课堂上,您有EntitySet<RSVP>一个完整的与会者列表,然后您可以在Dinner课堂上进行导航。

这会让事情变得更清楚吗?

马克

于 2009-08-22T14:28:23.767 回答