【发布时间】:2013-03-12 02:12:13
【问题描述】:
以下是我试图在其中定义外键关系的两个部分表。
public class Form
{
[Key, Column("FormID")]
public System.Guid FormGUID { get; set; }
[Column("PatGUID")]
public Nullable<System.Guid> PatientGUID { get; set; }
}
public class Patient
{
[Column("PatGUID")]
public System.Guid PatientGUID { get; set; }
[Key, Column("PatID")]
public int PatientID { get; set; }
}
我已经删除了除此示例中的相关信息、字段、导航等之外的所有内容;希望不要太多。
我们有一个表格表格,其 FK 为 PatGUID 到带有字段 PatGUID 的患者表格。
Patient 表有一个PatID int KEY 字段。
我们需要为代码优先实体模型重命名字段;本例中需要修改的相关字段为PatGUID改为PatientGUID。
我遇到的困难是尝试使用注释或流利的方式定义这个外键。
所以我需要的最终结果是:
主键表:患者,字段:
PatGUID(重命名为 PatientGUID)外键表:表单,字段:
PatGUID(重命名为 PatientGUID)
这似乎不是什么大问题,但是Patient.PatGUID 不是主键并且PatGUID 字段被重命名为PatientGUID 并没有使 WCF 数据服务能够正确创建具有正确引用的引用,因此正确选择/加入:
SELECT … FROM [dbo].[Form] AS [Extent1]
INNER JOIN [dbo].[Patient] AS [Extent2] ON [Extent1].[PatGUID] = [Extent2].[PatGUID]
【问题讨论】:
标签: c# entity-framework foreign-keys data-annotations