Linq to sql 将Linq中泛型类的继承映射到SQL

Linq to sql 将Linq中泛型类的继承映射到SQL,linq-to-sql,generics,orm,Linq To Sql,Generics,Orm,我正在尝试使用Linq to SQL将继承层次结构映射到DB: 继承是这样的,类是POCO,没有任何LINQ到SQL属性: public interface IStage { ... } public abstract class SimpleStage<T> : IStage where T : Process { ... } public class ConcreteStage : SimpleStage<ConcreteProcess> { ... } 如果L

我正在尝试使用Linq to SQL将继承层次结构映射到DB: 继承是这样的,类是POCO,没有任何LINQ到SQL属性:

public interface IStage
{ ... }

public abstract class SimpleStage<T> : IStage where T : Process
{ ... }

public class ConcreteStage : SimpleStage<ConcreteProcess>
{ ... }
如果LINQtoSQL不支持这一点,请您建议其他一些ORM,它们也支持。 提前感谢,

问候


Ksenia

您是否已将引用添加到文件中,以及是否正在使用语句导入引用?或者使用完全限定的类名?

我认为这是因为SimpleStage中的泛型类型T:它无法在内部为SimpleStage生成映射查找表,因为T是泛型的

在我研究了我的泛型类的IL之后,我自己找到了答案。 在IL中,它的名称看起来像SimpleStage`1,所以在我编写时,映射文件的问题已经解决

<Type Name="BusinessLogic.Domain.SimpleStage`1" ...

对不起,我不太明白,你说的是什么参考资料?如果您的意思是用LINQ相关属性装饰我的类,那么不,我使用POCO类,只在XML文件中提供映射。我的意思是项目->添加引用,然后选择BusinessLogic.Domain.IStage的程序集。您是否也像使用BusinessLogic.Domain一样导入库;哦,当然,我添加了对BL assembly的引用和所有必要的使用SBTW的引用,如果没有其他非继承实体的继承层次映射,则可以正确工作是的,我还认为这是因为泛型。但我想知道是否有一种方法可以以某种方式执行映射,也许可以使用其他ORM
StreamReader sr = new StreamReader(@"MappingFile.map");
XmlMappingSource mapping = XmlMappingSource.FromStream(sr.BaseStream);
DataContext dc = new DataContext(@"connection string", mapping);
<Type Name="BusinessLogic.Domain.SimpleStage`1" ...