C# 使用实体框架对接口进行编码
我正试图将我的头脑集中在实体框架上,并且在理解如何将代码编码到接口(或者,也许,编码到接口是否可行)上遇到了困难。我对C#很有信心,但主要是因为我有能力用这么多其他语言编程,所以请原谅我的无知 鉴于:C# 使用实体框架对接口进行编码,c#,.net,entity-framework,interface,C#,.net,Entity Framework,Interface,我正试图将我的头脑集中在实体框架上,并且在理解如何将代码编码到接口(或者,也许,编码到接口是否可行)上遇到了困难。我对C#很有信心,但主要是因为我有能力用这么多其他语言编程,所以请原谅我的无知 鉴于: public interface IInputSource { float GetCurrentValue(DateTime timestamp); } public class PatternSource : IInputSource { … float GetCurr
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;}
…
}
看起来,实体框架的O/M永远无法解析节点将引用的具体类,因此,根本无法对接口进行编码。真的是这样吗
如果没有,有人能给我一个例子,说明如何在EF4中实现这一点吗?我使用的是VS2010和.NET 4,我的思维方式是代码优先。我从未见过任何ORM框架能够处理这个问题。最好的选择是作为ORM存根的抽象基类
如果您有具体类继承的公共功能,则抽象基类可以从所需的超类继承,或者您可以使用装饰器来组合所需的功能。当然,其中一个可能的选择是为InputObject创建基类,并从中创建所有子类,但我更喜欢构图而不是继承。我只是想知道在这种情况下这是否是不可能的。