我试图将我的头脑围绕在实体框架上,并且在理解如何对接口进行编码时遇到了困难(或者,也许,对接口进行编码是否可能)。我对C#相当有信心,但主要是因为我能用这么多其他语言编程,所以请原谅我的无知。
给定:
public interface IInputSource
{
float GetCurrentValue(DateTime timestamp);
}
public class PatternSource : IInputSource
{
…
float GetCurrentValue(DateTime timestamp)
{
// generate value based on probability equation
}
…
}
public class TimeSeriesSource : IInputSource
{
…
float GetCurrentValue(DateTime timestamp)
{
// look up value in a key/value store
}
…
}
我想为接口编写一个节点类,因为有5到6种截然不同的源类型:
public class Node
{
…
public IInputSource Inflow { get; set;}
…
}
来自Entity Framework的O/M似乎永远不能解析Node将引用的具体类,因此,人们将无法对接口进行编码。真的是这样吗?
如果没有,谁能给我一个例子,说明如何在EF 4中实现这一点?我使用的是VS2010 & .NET 4,我采用的是代码优先的思想)。
发布于 2010-09-09 04:53:43
我从来没有见过任何ORM框架可以处理这个问题。您最好的选择是一个抽象基类,它充当ORM的存根。
如果您的具体类继承了公共功能,那么抽象基类可以继承自所需的超类,或者您可以使用装饰器来组合所需的功能。
https://stackoverflow.com/questions/3654485
复制相似问题