3

Person クラスがあります。人には名前と挨拶があります。Salutation はデータベース内の別のテーブルです (データベースを継承しました)。

UI では、Salutation を必須フィールドにしたいと考えています。私のモデルは次のようになります。

public partial class Person
    {
        public virtual string Id { get; set; }

        public virtual Nullable<long> SalutationId { get; set; }

        [Required]
        public virtual Salutation Salutation { get; set; }

        public virtual string FirstName { get; set; }

        [DisplayName("Last Name")]
        public virtual string LastName { get; set; }
    }

    public partial class Salutation
    {
        public virtual long Id { get; set; }

        public virtual string SalutationName { get; set; }

        public virtual string Status { get; set; }

        public virtual ICollection<Person> People { get; set; }
    }

これは正しいです?あいさつ文を入力しても、「あいさつ文は必須フィールドです」という検証エラーが表示されます。

これはすべて、すべてが正常に機能するまで、わずか 1 時間前に始まりました。

考える時間があり、締め切りを追っていなければ、自分で問題を解決していたでしょう。圧力があなたの心に与える奇妙なこと。

4

2 に答える 2

3

簡単な回答:問題は、あいさつ文に必要な検証を配置する場所にあります。

挨拶の検証属性は、 内に配置する必要がありますSalutation model

編集:モデルがpublic virtual各プロパティでアクセス修飾子を使用していることに加えて。virtual私のモデルがそれを必要としない場合は削除します。

于 2012-12-17T15:24:45.957 に答える
2

@ElYusubovは正しいですが、Person.SalutationIdそうすべきではありませんNullable

public partial class Person
{
  public virtual long SalutationId { get; set; }
  ...

これは、すべてPersonのオブジェクトに有効な が必要SalutationIdであることを意味します。これは、データベース内の関連Salutationレコードを意味します。

于 2012-12-17T15:26:36.633 に答える