【发布时间】:2011-04-08 22:38:01
【问题描述】:
我正试图围绕实体框架展开思考,但无法理解如何对接口进行编码(或者,也许,是否可以对接口进行编码)。我对 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,而且我是出于代码优先的心态。
【问题讨论】:
-
当然,一个可能的选择是为 InputObject 创建一个基类并从中创建一个子类,但我想支持组合而不是继承。我只是想知道在这种情况下是否不可能。
标签: c# .net entity-framework interface