0

ユーザーとロールのテーブルがあります。ユーザーテーブルには、RoleId列のデフォルト値があります。しかし、たとえば、RoleIdプロパティを次のように設定した場合、EF4でそれを機能させる方法はありません。DatabaseGeneratedOption.Computed

    _repository.Save(new User()
    {
        Login = "asdasd",
        Name = "sadqwqwd",
        Password = "wqdwqd"
    });

新しいユーザーはデフォルト値で挿入されますが、コードでRoleIdを設定したい場合

    _repository.Save(new User()
    {
        Login = "qqasdasd",
        Name = "qqsadqwqwd",
        Password = "qqwqdwqd",
        RoleId = 2
    });

RoleId値を無視し、デフォルト値を再設定します。オプションを削除すると、 DatabaseGeneratedOption.ComputedRoleId値なしでユーザーオブジェクトを挿入できません。この問題を解決するにはどうすればよいですか?前もって感謝します。

4

1 に答える 1

0

DatabaseGeneratedOption.Computed オプションを持つプロパティは、挿入/更新操作で EF によって無視され、データベース側でのみ設定できます。

RoleId プロパティから DatabaseGeneratedOption.Computed オプションを削除し、User クラスのコンストラクターでデフォルト値を設定します。

于 2012-06-19T06:23:49.363 に答える