繁体   English   中英

在非主键上一对多映射

[英]Mapping One to Many on non-primary key

我正在为遗留数据库(简化)做代码优先实体模型:

CREATE TABLE Person
(
    PersonID INT PRIMARY KEY NONCLUSTERED IDENTITY(1,1),
    Name NVARCHAR(255),
    PersonSystemID NVARCHAR(50) NOT NULL UNIQUE
); 

CREATE TABLE Address
(
    AddressID INT PRIMARY KEY NONCLUSTERED IDENTITY(1,1),
    PropertyDetails NVARCHAR(255),
    PersonSystemID NVARCHAR(50),
    FOREIGN KEY (PersonSystemID) REFERENCES Person(PersonSystemID)
)

唯一有趣的细节是Address表引用的是PersonSystemID而不是PersonID ,后者是Person表的真实PK。

我想叫物业AddressesPerson类和属性PersonAddress类。 有什么办法映射吗? (欢迎软糖和/或杂物)。

请注意,这是一个只读数据库-因此,我不需要处理INSERTS / UPDATES / DELETES。

目前尚无法使用,但将来的版本中可能会提供。

我们正在EF7中提供独特的约束支持。

http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/1050579-unique-constraint-ie-candidate-key-support

现在的解决方法是删除那些导航属性并手动加入实体。

var result = from p in db.Person
             join a in db.Address
             on p.PersonSystemID equals a.PersonSystemID
             select new { Person = p, Address = a };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM