C# SQL Server和LINQ中的继承?

C# SQL Server和LINQ中的继承?,c#,sql,linq,inheritance,C#,Sql,Linq,Inheritance,我通常创建应用程序的方法是首先创建数据库,然后使用LINQtoSQL为我创建类。 但在我当前的项目中,我想尝试使用继承,我认为在数据库中创建继承是不可能的 因此,我想知道如何使用SQL Server/LINQ创建继承类,以便从数据库中保存/获取数据。 例如,如果我有 家长: - contact (id, name, telephone number, address, email..) 和孩子们: - customer(id, title, activity, discount, vat..

我通常创建应用程序的方法是首先创建数据库,然后使用LINQtoSQL为我创建类。 但在我当前的项目中,我想尝试使用继承,我认为在数据库中创建继承是不可能的

因此,我想知道如何使用SQL Server/LINQ创建继承类,以便从数据库中保存/获取数据。 例如,如果我有 家长:

- contact (id, name, telephone number, address, email..) 
和孩子们:

- customer(id, title, activity, discount, vat...)
- supplier (id, title, activity, vat, bankaccount_number, manager, expiration_day...)
- driver (id, first name, hire_date, fire_date, function, date of birth...)
如何为这些类创建工作数据库连接? 我没有很多创建类的经验,因为我通常让VisualStudio(LINQ)为我创建类

我非常感谢您的帮助,
谢谢:)

我会创建另一个表:ContactTypes,而不是为每个联系人设置一个类型。在此之后,我可以创建一个额外的表:PropertiesToContactTypes,然后创建一个名为PropertiesToContacts的新表。我认为这是一个非常简单和有用的方法

如果你只在程序代码中创建东西,当你不得不处理复杂的查询时,你会发现自己处于困难的境地。LINQtoSQL是一个很好的工具,但是对于复杂的查询,您应该使用存储过程。

LINQtoEntities()提供了这个现成的功能

您可以将实体设计为父类的派生,然后为它们创建查询,如下所示:

var customers = context.ContactSet.OfType<Customer>();
var suppliers = context.ContacctSet.OfType<Supplier>();
var drivers = context.ContactSet.OfType<Driver>();
var customers=context.ContactSet.OfType();
var suppliers=context.ContacctSet.OfType();
var drivers=context.ContactSet.OfType();
父类和子类共享一个实体键。数据库在父表和子表之间应具有(1:0或1)关系


我不认为Linq到SQL存在任何类似的情况。

我不确定我是否理解,你能给出一个更广泛的例子吗?这就是数据库应该是什么样子?(klant=customer)如果“customer”扩展了“contact”,那么customer\u id应该是contact\u id的外键关系,以及customer表的主键。以下是关于该主题的一个很好的演练:谢谢您的帮助,该演练也非常有用。:)我不知道你想告诉我什么。很抱歉ContactTypes(ID,ContactTypeName)Contact(任何内容,ContactTypeID[参考ContactTypes])属性(ID,PropertyName)属性StopContectTypes(ContectTypeID,PropertyID)//仅用于编辑页面属性StopContacts(ContactID,PropertyID)我的英语不好,所以我很难解释所有这些,所以我要求你们尝试建立一个数据库结构,就像我提供的例子一样。