标签最有效/最灵活的实现

时间:2013-11-10 18:51:50

标签: c# entity-framework

我正在寻找一种方法来基本上为任何类/对象实现标记。它可能是产品,博客,用户,评论......我的想法是创建一个我可以实现任何类的接口。通过这样做,它将自动创建数据库中所需的一切。

有没有办法做这样的事情?或者我是否需要为每个可标记的'创建一个实体?对象?

1 个答案:

答案 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。

希望这有帮助。