3

データベースに52列のテーブルがあり、そのテーブルに行を作成する関数を記述したいと思います。
私の場合、そのテーブルのすべての列を使用したくないので、このようにモデルを作成しました。

[Table("CUST_MASTER")]
public class CustomerMaster
{
    [Key]
    [Column("CUSTOMER_ID")]
    public string Id { get; set; }

    [Column("CUSTOMER_NAME")]
    public string Name { get; set; }

    [Column("CUSTOMER_CITY")]
    public string City { get; set; }
 }

Entity Frameworkを介してこのデータのみを送信し、他のすべてのnull許容フィールドをデフォルトデータ(文字列 ""の場合、小数0.0の場合など)に設定する方法はありますか?モデルにすべてのフィールドを書き込んで手動で行う必要はありませんか?

4

3 に答える 3

4

モデルにテーブル列を組み込まない場合、テーブルはマップされず、生成されたすべてのSQLによって完全に無視されます。

したがって、唯一のオプションは、データベースでデフォルト値を指定することです。

于 2012-05-03T08:09:19.020 に答える
0

コンストラクターで値を設定すると、コードを通じてデフォルト値が得られますが、代わりに移行を有効にすることを検討できます。この方法でデフォルト値を設定できます。このstackoverflowの質問を見てください

于 2012-05-03T08:05:53.783 に答える
0

この古い提案はあなたが望むものだと思います。概念モデルとストレージモデルの間のマッピングの欠如について明示的に言及しています。しかし、あまり人気がなく、理解されているアイデアではありません。

更新: FWIW、これは、コードファースト以外のシナリオですでに可能であることを示唆しています。

于 2013-11-05T17:40:47.050 に答える