Можно ли сопоставить следующий класс POCO с EF 4.0?
public class MyClass
{
private string _myData;
public MyClass()
{ }
public MyClass(string myData)
{
_myData = myData;
}
public string MyData
{
get
{
return _myData;
}
}
}
В NHibernate я думаю, что это возможно, когда я использую атрибут Access при сопоставлении, например:
<class name="MyClass" table="MyTable">
<property name="MyData" access="field.camelcase-underscore" column="MyCol" type="string" length="50" />
</class>
Интересно, есть ли эквивалент Access в EF 4.0? В настоящее время я могу отображать класс только в том случае, если я добавлю защищенный установщик в свойство MyData:
public string MyData
{
get
{
return _myData;
}
protected set
{
_myData = value;
}
}
Это работает, но для устаревших классов это означает обновление всех свойств, у которых нет настроек.
Edit:
Я обновил последний пример кода, потому что он также не работает с частным установщиком. Сеттер должен быть, по крайней мере, защищен. Если сеттер является закрытым или не существует, следующее исключение:
System.InvalidOperationException: Информация о картировании и метаданных может не найдено для EntityType 'MyNamespace.MyClass'.