Я пытаюсь обернуть голову вокруг Entity Framework и испытываю затруднения с пониманием того, как можно кодировать интерфейс (или, возможно, возможно ли кодирование интерфейса). Я довольно уверен в 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 из Entity Framework никогда не сможет разрешить конкретный класс, на который будет ссылаться Node, и, таким образом, просто не удастся кодировать интерфейс. Это действительно так?
Если нет, может ли кто-нибудь дать мне пример того, как это будет выполнено в EF 4? Я использую VS2010 & .NET 4 и исходил из менталитета, основанного на коде).