sti*_*net 15 c# entity-framework-6
我有两张桌子:
Client
------------------------
Id (string) <-- PrimaryKey
Name (string)
Number (int)
Department:*
------------------------
Id (int) <-- Primary key
Name (string)
ClientNumber (int?)
Client (Client, virtual)
.....
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个从Departmant到Client的可选关系(使用ClientNumber).我在Department类(Client)中创建了一个虚拟属性,现在我需要使用EntityTypeConfiguration配置关系.
数据库中没有配置外键,我无法更改数据库.我也无法更改实体(类)客户端.
所以我需要告诉EntityFramework,Department类中的ClientNumber(可选)与Client类中的Number属性相关.
但我无法弄清楚如何告诉EF部门的ClientNumber与客户的号码属性相关,而不是客户的主键.(不更改客户端实体类)
编辑:客户端上的Number属性对于每个条目都是唯一的.
该关系应该导致这样的sql语句:
SELECT .....
FROM Department D LEFT OUTER JOIN Client C ON (D.ClientNumber = C.Number)
Run Code Online (Sandbox Code Playgroud)
使用Linq中的连接很容易做到这一点,但它只是:
dbContext.Departments.Include(d => d.Client)
Run Code Online (Sandbox Code Playgroud)
在包含客户端的Department类上使用虚拟属性(如果有)
抱歉,这是不可能的。EF 中的有效关系在数据库中也必须有效,换句话说,从属表必须引用主体表中的唯一标识符。否则系统无法保证每个部门最多有一个客户。
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |