-1

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

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

4

1 回答 1

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 将与博客测试 1 相关联。

New EntityTag
    {
      EntityId = 2,
      EntityTypeId = 1,
      Text = "blog test 2 tag"
    };

此 EntityTag 将与博客测试 2 相关联。

最后,

 New EntityTag
    {
      EntityId = 1,
      EntityTypeId = 2,
      Text = "Product tag"
    };

您将需要实现获取实体类型的方法,但这真的很容易。按照您的建议固定在接口上。您可以为接口继承的每个 POCO 对象创建一个部分类,在这里您可以设置 EntityTypeName。

希望这可以帮助。

于 2013-11-10T21:31:58.860 回答