我正在为遗留数据库(简化)执行代码优先实体模型:
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。
我想在Addresses
类中使用名为Person
的属性,在Person
类中使用属性Address
。有没有办法映射这个? (欢迎使用软糖和/或cluges。)
请注意,这是一个只读数据库 - 所以我不需要处理INSERTS / UPDATES / DELETES。
答案 0 :(得分:2)
目前您无法做到,但可能会在将来的版本中提供。
我们正致力于EF7中的唯一约束支持。
现在的解决方法是删除这些导航属性并手动加入实体。
var result = from p in db.Person
join a in db.Address
on p.PersonSystemID equals a.PersonSystemID
select new { Person = p, Address = a };