Entity Framework 4 (с использованием EDMX ), как добавить поле в модель, в которой БД фактически не имеет поля

Мне нужно добавить поле в модель, в которой база данных фактически не имеет поля.

Потому что сначала я пытался добавить поле только в класс Entity.

public partial class Weborder
{
  (Auto Generated)
  public int orderno {get; set;}
 .
 .
 .
  (Add Manually)
  public string newField1 {get; set;} //this is new field that DB does not have
  public string newField2 {get; set;} //this is new field that DB does not have
}

и позже, когда я обновляю EDXM, EDMX удаляет новые поля, потому что в базе данных нет поля.:(

Поэтому я добавляю поле в модель EDMX вручную. (Добавить -> Скалярное свойство )

, затем возникает ошибка при компиляции, в сообщении об ошибке говорится:

Error   1   Error 3004: Problem in mapping fragments starting at line 399:No mapping specified for properties...
An Entity with Key (PK) will not round-trip when:...

Кто-нибудь знает, как добавить новые поля в класс объектов?

Спасибо!

ОТРЕДАКТИРОВАНО ДЛЯ :Если ваша модель является представлением вашей базы данных, а в базе данных нет поля, зачем вам добавлять его вручную?

=>

При извлечении данных тип возвращаемого объекта — это класс сущности.

и перед передачей данных из контроллера в представление мне нужно добавить дополнительные поля данных ()в результат IQueryable.

ex )

public DbSet<WEBORDERLN> WEBORDERLNs { get; set; }

//repository
public IQueryable<WEBORDERLN> WebOrderLns
{
      get { return context.WEBORDERLNs; }
}

, и теперь я получаю данные weborderln в контроллере. и перед передачей представления мне нужно

добавить в результат дополнительные данные.

var data = webOrderLnRepository.WebOrderLns.Where(e => e.PICKNO == OrderNo).ToList();

foreach (WEBORDERLN weborderln in data)
{
   weborderln.[NEW FIELD] = "EXTRA DATA";   //// FOR THIS, I NEED TO ADD NEW FILED INTO ENTITY CLASS
}

//return data

Надеюсь, это прояснило вопрос.:)

Еще раз спасибо.

11
задан JayC 23 April 2012 в 14:20
поделиться