Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用实体框架对接口进行编码_C#_.net_Entity Framework_Interface - Fatal编程技术网

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

我正试图将我的头脑集中在实体框架上,并且在理解如何将代码编码到接口(或者,也许,编码到接口是否可行)上遇到了困难。我对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;}
    …
 }
看起来,实体框架的O/M永远无法解析节点将引用的具体类,因此,根本无法对接口进行编码。真的是这样吗


如果没有,有人能给我一个例子,说明如何在EF4中实现这一点吗?我使用的是VS2010和.NET 4,我的思维方式是代码优先。

我从未见过任何ORM框架能够处理这个问题。最好的选择是作为ORM存根的抽象基类


如果您有具体类继承的公共功能,则抽象基类可以从所需的超类继承,或者您可以使用装饰器来组合所需的功能。

当然,其中一个可能的选择是为InputObject创建基类,并从中创建所有子类,但我更喜欢构图而不是继承。我只是想知道在这种情况下这是否是不可能的。