0

というクラスを作りましたTag

public class Tag
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int TagId { get; set; }

    public string Name { get; set; }

    public virtual ICollection<string> Synonyms { get; set; }
}

Synonymsプロパティをデータベース に取得するにはどうすればよいですか?

そのためのモデルを作成する必要がありますか?

4

2 に答える 2

1

エンティティクラスでラップする必要があります

例えば

public class Synonym
{
  int SynonymId {get; set;}
  string Synonym {get; set;}
}

または、コレクションを個別の文字列フィールドにフラット化します

例えば:

public class Tag
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int TagId { get; set; }

    public string Name { get; set; }
    public string SynStore {get; set;}
    public IEnumerable<string> Synonyms 
{
    set { SynStore = String.Join(',', value);}
    get{ return SynStore.split(','); }
}
}
于 2013-03-17T18:39:36.067 に答える
1

はい、を作成する必要がありますModel。おそらく次のようにします。

public class Tag
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int TagId { get; set; }

    public string Name { get; set; }

    public virtual ICollection<Synonym> Synonyms { get; set; }
}

次に、シノニム モデル:

public class Synonym
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [HiddenInput(DisplayValue = false)]
    public int SynonymId { get; set; }

    [ForeignKey("Tag"), DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int TagId { get; set; }

    public string Name { get; set; }

    public virtual Tag Tag { get; set; }
}
于 2013-03-17T18:38:24.027 に答える