SQL Server外键ID和实体属性

时间:2016-05-19 11:14:29

标签: c# sql-server linq

对于学校我正在使用C#WPF和SQL Server进行项目。我创建了数据库并使用Linq to SQL。现在我得到了以下表格:

Patients
-------
ID                 int PK
name               varchar
insurancecompany   int FK

Insurancecompanies
-------
ID                 int PK
name               varchar
insurancecompany中的{p> patientsidinsurancecompanies的FK

我遗漏了很多不必要的专栏,因为这需要太长时间。所以我将数据库表添加到我的Linq to SQL数据库模型中。我为patient类创建了一个实例。看着它,我看到2个属性。一个是insurancecompany,即int。另一个是insurancecompany1,这是insurancecompany类型。

int设为私有或将其删除是否安全?或者有没有办法让它只有一个属性?

1 个答案:

答案 0 :(得分:0)

正在发生的事情是,数据库模型看到您与保险公司有外键关系,它会查看您已分配给它的值,然后找到该公司并将其添加为其调用的附加属性&# 34; insurancecompany1" (它本来会叫它"保险公司"但不能,因为你已经拥有一个具有该名称的财产。)

这是一个很好的功能,因为它可以轻松查看保险公司的特定患者,而无需使用连接;

var dave = patient();
//assign a patient from your database to "dave" here..
 var nameOfDavesInsuranceCompany = dave.insurancecompany1.name;

如果您删除了int保险公司,您将失去此功能,因为该模型将无法确定要查看哪家保险公司。您可以将其设为私有,但您可以通过简单地给出一个int值来放弃向患者分配保险公司的能力(您将始终必须将insurancecompany对象设置为insurancecompany1)。

如果您不喜欢这些名称,可以将保险公司重命名为insurancCompanyId,然后致电保险公司1保险公司。