//件名情報へのaddWebUIがあり、これらのデータは。という名前のeditSQLServerdeleteデータベーステーブルに保存されていますSubject
。そのテーブルには、、、などの列がありId(PK)
ます。SubjectCode
SubjectName
Tutor
Id
フィールドは主キーであり、常に一意です。
SubjectCode
varchar
一意である必要があるフィールドです(などの値CS1001
)
LINQ
データを挿入および更新するときに、以下のように(C#)を使用して一意性を検証しました。
bool isCodeExist = DbContext.Subject.Any(record => record.SubjectCode == subject.SubjectCode);
if (true == isCodeExist )
{
// SubjectCode is already exist. Do not proceed.
return -1;
}
else
{
// Proceed...
}
これは、インサートに対してのみ正常に機能します。
サブジェクトのチューター名(または他の列)のみを更新するなど、更新時にエラーが発生する場合があります。これについてのあなたの助けに感謝します。
UPDATE:更新操作の完全なコードセクション。
public int EditSubject(Subject subject)
{
using (SMSEntities DbContext= new SMSEntities())
{
try
{
bool isCodeExist = DbContext.Subject.Any(record => record.SubjectCode == subject.SubjectCode);
if (true == isCodeExist )
{
// SubjectCode is already exist. Do not proceed.
return -1;
}
else
{
// Create table object
Subject theSubject = new Subject();
// Assign values from the domain entity obj from param
theSubject.SubjectCode = subject.SubjectCode;
theSubject.Tutor = subject.Tutor;
theSubject.LastUpdatedDate = DateTime.Now;
// other value assignment also same....
// Save subject
DbContext.Subjects.Attach(theSubject);
DbContext.ObjectStateManager.ChangeObjectState(theSubject, EntityState.Modified);
DbContext.SaveChanges();
return 0;
}
}
catch (Exception)
{
// Log exception
throw;
}
}
}