Я использую базы данных Во-первых, EF 4,1Тип объекта List`1 не является частью модели для текущего контекста
Я получаю «тип сущности List`1 не является частью модели текущий контекст ". при попытке обновить запись из моего Edit View.
Ошибка происходит при
db.Entry(properties).State = EntityState.Modified;
Вот моя модель:
public class Users
{
[Key]
public int User_ID { get; set; }
public string UserName { get; set; }
[NotMapped]
public IEnumerable<App_Properties> User_Properties
{
get { return Properties.Where(u => u.User_ID == User_ID); }
}
public virtual ICollection<App_Properties> Properties { get; set; }
}
public class App_Properties
{
[Key]
public int Prop_ID { get; set; }
public int User_ID { get; set; }
public int App_ID { get; set; }
public string Key { get; set; }
public string Value { get; set; }
public DateTime DateEntered { get; set; }
public DateTime DateModified { get; set; }
[ForeignKey("User_ID")]
public virtual Users Users { get; set; }
}
Вот мой контроллер:
[HttpPost]
public ActionResult Edit(ICollection<App_Properties> properties)
{
if (ModelState.IsValid)
{
foreach (var item in properties)
{
db.Entry(properties).State = EntityState.Modified;
}
db.SaveChanges();
return RedirectToAction("Index");
}
return View(properties);
}
Я подозреваю, что цикл Еогеасп не подходит в настройке EntityState для каждого элемента в ICollection.
Любая помощь будет принята с благодарностью.
Быстрый семантическое примечание, то имя App_Properties.Users будет означать несколько пользователей, а не один. Как правило, конвенция состоит в том, что один объект имеет уникальное имя, так как «var users = new Users()» подразумевает коллекцию людей, а не один элемент. – Leniency
Да, спасибо ... Я не контролирую БД, и я позволяю неправильному наименованию таблиц распространяться в моем коде. –
Имена db не обязательно должны - очень легко изменить отображение вашего POCO в фактическую таблицу базы данных OnModelCreating: 'modelBuilder.Entity() .ToTable (« Пользователи »)'. Простое переименование F2 в классе Users затем распространит переименование в вашем проекте. То же самое с именами свойств - вы можете настроить любую из них. http://weblogs.asp.net/scottgu/archive/2010/07/23/entity-framework-4-code-first-custom-database-schema-mapping.aspx –
Leniency