資料表設計PK是uniqueidentifier型態,預設值在DB也設定NewID()
但在程式中卻一定要給Guid.NewGuid();
原來是紅框地方設錯了
原來StoreGeneratedPattern三個選項None/Computed/Identity,後2個有點點差異
Computed:新增和修改時,都引用DB設定,所以一般流水號遞增或預設系統日,都可以正常Work
Indentity:只有新增時,引用DB設定
或我只想用SQL SERVER預設值功能,沒有要去弄trigger什麼,所以我應該只對新增時有興趣
一開始將ruleid設Computed都無作用,但CreateDate設Computed是Work的
查了一下才知,這裡的Identity是唯一的概念,所以像guid這種唯我獨尊的,要選用這個,才能Work
所以如果型態是guid的值,記得選Identity
至於creaedate/modifydate一般都會新增時填入系統入,修改時只改modifydate
所以,createdate請選computed(identity也work),但modifydate需選none,否則修改時,DB是不會幫你更新欄位值的。。因為咱們設的是預設值
試過將modifydate設成identity,修改時再由程式去更新,但。。。不work,所以只要選非None,看起來都不接受程式update值
所以將modifydate選noe,再由程式去更新系統日。。。
public IWDASResult Create(accrule instance)
{
IWDASResult result = new WDASResult(false);
try
{
instance.modifydate = System.DateTime.Now;
this._Repository.Create(instance);
result.Success = true;
}
catch(Exception ex)
{
result.Exception = ex;
}
return result;
}
public IWDASResult Update(accrule instance)
{
IWDASResult result = new WDASResult(false);
try
{
instance.modifydate = System.DateTime.Now;
this._Repository.Update(instance);
result.Success = true;
}
catch (Exception ex)
{
result.Exception = ex;
}
return result;
}
打雜打久了,就變成打雜妹
程式寫久了,就變成老乞丐