Я пытаюсь обновить строку в своей таблице bu.LastReviewCreationDate = LastReviewCreationDate;
, но это действие генерирует исключение DbEntityValidationException.Получение DbEntityValidationException, когда я пытаюсь обновить строку в таблице, используя структуру сущности
public void UpdateLastReviewCreationDate(string idBusiness, DateTime LastReviewCreationDate,string urlSite) {
DAL.Business bu;
try {
using (DBContext tpContext = new DBContext())
{
bu = tpContext.business.Find(idBusiness, urlSite);
if (bu != null)
{
bu.LastReviewCreationDate = LastReviewCreationDate;
tpContext.SaveChanges();
}
}
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
}
Так это то, что я получил в отладчике:
Это означает, что эта таблица только для чтения и не дают возможность редактирования. Но я никогда не устанавливал эту таблицу в режиме «Только для чтения», это действительно странно. Это код этой таблицы.
public class Business
{
public Business()
{
LastReviewCreationDate = new DateTime();
}
[Key, Column(Order = 0)]
public string Id { get; set; }
[Key, Column(Order = 1)]
[ForeignKey("site")]
public string SiteId { get; set; }
public string UrlBusiness { get; set; }
public DateTime LastReviewCreationDate { get; set; }
[Required]
public virtual Site site { get;set;}
public virtual BusinessUser businessUser{get;set;}
}
Может быть, у кого есть идеи? И возможно ли, что сброс IsReadOnly
параметра на false
?
IsReadOnly - это флаг в записи, которую вы можете установить. Однако должно быть что-то еще неправильно. вы уверены, что ваша собственность в вашем контексте - это DbSet? как он настроен (свободный API?) –
DevilSuichiro
У меня есть 'public DbSet business {get; задавать; } 'в моем контексте. –
Stephane
Как этот dbset (например, контекст) настроен относительно этого dbset? Я знаю, что вы можете установить readonly на свою запись (-set), однако стандартное поведение DbContext не является данными только для чтения. – DevilSuichiro