gpt4 book ai didi

c# - Entity Framework 6 可选的单向关系

转载 作者:可可西里 更新时间:2023-11-01 07:48:23 26 4
gpt4 key购买 nike

我有两个表:

Client
------------------------
Id (string) <-- PrimaryKey
Name (string)
Number (int)

Department:*
------------------------
Id (int) <-- Primary key
Name (string)
ClientNumber (int?)
Client (Client, virtual)
.....

现在我想创建一个从 Departmant 到 Client 的可选关系(使用 ClientNumber)。我在 Department 类 (Client) 中创建了一个虚拟属性,现在我需要使用 EntityTypeConfiguration 配置关系。

数据库中没有配置外键,我无法更改数据库。我也无法更改实体(类)客户端。

所以我需要告诉 EntityFramework Department 类中的 ClientNumber 与 Client 类中的 Number 属性相关(可选)。

但我不知道如何告诉 EF 部门的 ClientNumber 与客户的 Number 属性相关,而不是客户的主键。 (不改变Client实体类)

编辑:Client 上的Number 属性对于每个条目都是唯一的。

该关系应生成如下 sql 语句:

SELECT .....
FROM Department D LEFT OUTER JOIN Client C ON (D.ClientNumber = C.Number)

在 Linq 中使用连接很容易做到这一点,但最好是:

dbContext.Departments.Include(d => d.Client) 

在包含客户(如果有)的部门类上使用虚拟属性

最佳答案

作为@Gert Arnold提到这“还”不可能。Entity Framework 7 将支持此功能。

对于那些想要了解最新信息的人,这里是功能讨论/投票。

Unique Constraint (i.e. Candidate Key) Support

关于c# - Entity Framework 6 可选的单向关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902428/

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