未在数据库中创建的模型上的字符串集合属性
本文关键字:字符串 集合 属性 模型 数据库 创建 | 更新日期: 2023-09-27 18:04:27
我创建了一个名为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
属性进入数据库?
我必须为它创建一个模型吗?
是的,你必须创建一个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; }
}
你必须用实体类来包装它
。
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(','); }
}
}