0

假设我必须表格:“客户”(父)和“地址”(子)。它们是关联的,因此它们之间存在 1:1 的关系。

   Table<Customer> table = db.GetTable<Customer>();

   var query = from c in table
               select p;

是否有可能使用选定的客户表查询与“客户”关联的表,或者我是否必须在单独的查询中获取所有地址表?

此外,如果我在客户表上使用 DELETE 命令,这是否也会删除所有关联的表?

提前致谢,

保护

4

2 回答 2

1

如果它们与外键相关,那么它应该非常简单。地址应该只是客户的财产。

var query = from c in table
            select c.Address;

join或者,如果外键不存在,您可以使用 a 来执行此操作。

var query = from c in table
            join address in [AddressTable] on c.AddressId equals address.Id
            select address;

DELETE您所指的类型称为级联删除。你需要在你的外键上启用它(你需要一个 FK 才能工作)。看到这个线程

于 2012-08-21T10:50:20.700 回答
0

您不必单独获取地址,lazy load如果您在 dbml 中设置了关联(即链接表的箭头),您应该能够只获取地址。

Intellisense 应该显示属性;

  var query = from c in table
               select p.Address;

对于删除在表本身的外键上设置一个on delete cascade,这将在您每次删除客户记录时删除关联的地址。

于 2012-08-21T10:50:47.483 回答