我正在为遗留数据库(简化)做一个代码优先实体模型:
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的属性,在Address类中需要一个属性Person。有什么办法来映射这个吗?(欢迎填鸭式和/或封闭型)。
请注意,这是一个只读数据库-因此我不需要处理插入/更新/删除。
发布于 2014-08-18 11:21:59
目前你不能,但它可能会在未来的版本中可用。
我们正在致力于EF7中唯一的约束支持。
http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/1050579-unique-constraint-i-e-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 };https://stackoverflow.com/questions/25361901
复制相似问题