我在实体框架中使用代码优先方法。
我正在使用两个类:Item
和Tag
。 Item
可以有多个Tag
s
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public List<Tag> Tags { get; set; }
}
public class Tag
{
public int TagId { get; set; }
public int Name { get; set; }
public Item Item { get; set; }
}
我想将TagId
放在Items
表中作为逗号分隔值。
我可以使用外键关联来实现这一目标吗?如果是这样,我如何在使用数据时检索数据?或者请指定另一种方法。
答案 0 :(得分:1)
您可以将其公开为未映射的属性,即:
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public List<Tag> Tags { get; set; }
[NotMapped]
public string TagIds
{
set
{
if (Tags == null) return null;
return string.Join(",", Tags.Select(t => t.TagId.ToString).ToArray());
}
//get
//{
// If you need you can implement this with string.Split and update the Tags
//}
}
}
我不知道你是否需要实现get。如果您这样做,可以使用string.Split()
和int.Parse()
获取新标记ID,并在数据库中更新它们。