我正在寻找一种方法来基本上为任何类/对象实现标记。它可能是产品,博客,用户,评论......我的想法是创建一个我可以实现任何类的接口。通过这样做,它将自动创建数据库中所需的一切。
有没有办法做这样的事情?或者我是否需要为每个可标记的'创建一个实体?对象?
答案 0 :(得分:0)
为什么不在数据库中创建EntityTag表?
您还需要一个EntityType表。对于每个POCO类对象,您声明一个EntityTypeId: -
一个例子,
new Blog
{
Id = 1,
Name = "Blog 1"
}
new Blog
{
Id = 2,
Name = "Blog 2"
}
new Product
{
Id = 1,
Name = "Product"
}
new EntityType
{
Id = 1,
EntityTypeName = "Blog"
}
new EntityType
{
Id = 2,
EntityTypeName = "Product"
}
如果要为任何对象创建标记,只需在数据库中创建一个新的实体标记条目,如下所示: -
New EntityTag
{
EntityId = 1,
EntityTypeId = 1,
Text = "blog test 1 tag"
};
此EntityTag将与Blog Test 1相关联。
New EntityTag
{
EntityId = 2,
EntityTypeId = 1,
Text = "blog test 2 tag"
};
此EntityTag将与Blog Test 2相关联。
最后,
New EntityTag
{
EntityId = 1,
EntityTypeId = 2,
Text = "Product tag"
};
您需要实现获取实体类型的方法,但这非常简单。按照建议在接口上进行螺栓连接。您可以为继承您的接口的每个POCO对象创建一个分部类,在这里您可以设置EntityTypeName。
希望这有帮助。