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