EF 4.0 - сопоставление свойства readonly с закрытым полем

Можно ли сопоставить следующий класс 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;
    }
  }

Это работает, но для устаревших классов это означает обновление всех свойств, которые не имеют установщика.

Редактировать:

I обновили последний пример кода, потому что он также не работает с приватным сеттером. Сеттер должен быть как минимум защищен. Если установщик является частным или не существует, выдается следующее исключение:

System.InvalidOperationException: Карта и метаданные могут не найден для EntityType 'MyNamespace.MyClass'.

12
задан Ladislav Mrnka 29 August 2010 в 16:53
поделиться