Объект сущности mvc3 с дополнительным полем не сохранен - PullRequest
1 голос
/ 14 сентября 2011

Я пишу приложение MVC3 с Entity.Я новичок в .net и лица, поэтому этот вопрос может быть основным.

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

Есть ли способ указать, что поле не сохраняется с остальной частью объекта?Кроме того, есть ли способ сделать поле обязательным при создании, а не при редактировании?

Я бы просто жестко запрограммировал его, но я бы хотел включить его в валидацию, которую можно установить в моделях сущностей.

Сначала я использую код Entity.

1 Ответ

3 голосов
/ 14 сентября 2011

вы можете использовать viewmodels для отображения или редактирования, сохраняя при этом сопоставление вашей модели представления с моделью домена (исключая ненужные поля), а затем сохраняйте ее.Вы можете использовать инструмент auto mapper для сопоставления моделей представлений с моделями доменов.

скажем, например, у вас есть человек класса домена

public class Person
{
public string Name {get; set;}
public string Address {get; set;}
}

, затем вы создаете модель представления

public class VMPerson
{
public string Name {get; set;}
public string Address {get; set;}
public int Age{get;set;}
}

извлеките данные в модель представления и передайте их вашему представлению, запрос может выглядеть так:

var q = (from p in db.Person 
        select new VMPerson{
         Name = p.name,
         Address = p.address,
         Age = 16
         }).SingleOrDefault();

return q;

, по вашему мнению, возраст также будет отображаться, затем в сообщении

[HttpPost]
public ActionResult Person(VMPerson vmperson)
{
Person p = new Person()// your domain object
// mapping part here
p.name =  vmperson.name;
p.address = vmperson;

TryUpdateModel(p);
db.Person.Save();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...