テーブル内の行を更新しようとしていますが、このアクションによって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;
}
}
このテーブルは読み取り専用と編集を許可されていない手段だこと。しかし、私はこのテーブルをRead-onlyで設定したことはありません。本当に変です。これはこの表のコードです。
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;}
}
たぶん誰もがアイデアを持っていますか?そしてfalse
にパラメータIsReadOnly
をリセットすることは可能ですか?
IsReadOnlyは、設定可能なエントリのフラグです。しかし、何か間違っているはずです。あなたのコンテキストビジネスの資産がDbSetであることを確かめますか?どのように構成されていますか(流暢なAPI?) –
DevilSuichiro
私は 'public DbSet business {get;セット; } '私のコンテキスト上で。 –
Stephane
このdbsetに関するこのdbset(コンテキストなど)はどのように設定されていますか?私はあなたのエントリ(-set)でreadonlyをオフにすることができますが、DbContextの標準的な動作は読み込み専用ではありません。 – DevilSuichiro