假设我在 sql 中有两个表(Address
和Phone
),它们具有一对一的关系。我已经创建了相应的 linq to sql 类并将关联更改为OneToOne
我想通过过滤子对象来检索这两个对象。例如,我有以下查询可以正常工作:
var n = db.Addresses.Where(t => t.Phone.Number == 100);
有什么办法可以使以下工作:
var n = db.Addresses.Where(t => t.Phone == new Phone(100));
上面的Phone
类构造函数初始化Number
属性。正如我所看到的,发出的查询包含一个子句,该子句通过 id(主键)过滤 Phones 表,但不包括 number 子句。
如果我Number
在 Visual Studio 中设置为主键,则它包含在 where 子句中,但搜索仍然不返回任何内容,因为 id 的参数值为 0。即使它有效,它也不是解决方案,因为它不Number
应该是主键.