フィールドのSQL Serverに表示されるデフォルトがLINQに反映されないのはなぜですか

私はSQL Serverのフィールドにデフォルトを設定しています。今はLINQを使ってテーブルのレコードにアクセス/追加/変更/削除していますが、挿入時にデフォルト値を持つフィールドに値を割り当てる必要があるのでしょうか?このコード行を考えてみましょう。

SQL

CREATE TABLE SampTable
(
 sysid int not null primary key identity(1,1),
 values1 bigint not null default(0), --> consider my default is predefined
 values2 datetime not null default(getdate())
)

LINQを使用してC#

SampleTable entity = new SampleTable();
entity.values1 = 1;
entity.values2 = DateTime.Now  //I do have default set on SQL why do i need to do this
//Do Something
3

1 答え

使用しているORMマッパー(おそらくDBML)は、データベースからデフォルトの制約をコピーしません。悪いことではありません。データベースのデフォルトを変更した場合はどうなりますか?古いコードの中にはORMの古いデフォルトのコピーが残っているものもあります。それはかなり混乱する可能性があります。

私は自分でSQLを書くことを提案したい。 SQLはORMの作成やカスタマイズの半分ほど難しくありません。 C#コードのストアドプロシージャまたは insert ステートメントのいずれかが機能します。

0
追加された
プレーンなSQLを書こうとすると、ひどいアドバイス!これは非常に状況に依存しており、多くの状況で生産性の向上は莫大です。
追加された 著者 usr,