在模型中声明一个属性,该属性不会通过实体框架迁移生成为数据库中的列

本文关键字:属性 迁移 框架 实体 数据库 声明 模型 一个 | 更新日期: 2023-09-27 18:34:51

我正在为我的最新项目使用实体框架,我的目标是检索系统中产品具有的喜欢量。

我有 2 个模型:
产品和产品类

我希望能够将 int 属性添加到名为 NumberOfLikes 的产品模型中。但是,如果我这样做,EF 迁移会将其创建为数据库中的列。有没有办法在模型中声明一个属性,然后简单地获取所有产品并加入以获取产品,如计数并设置属性?

我知道这在某种程度上是ViewModels的用途,但我想在UI层之前使NumberOfLikes属性成为产品的一部分,而不是数据库的一部分。

在模型中声明一个属性,该属性不会通过实体框架迁移生成为数据库中的列

尝试这样做,创建用于生成实体的类的分部类并添加 NumberOfLikes 属性。

public partial class Product
{
  public int NumberOfLikes{get; set;}
}

确保此类与用于生成数据库的产品模型类位于同一命名空间中。

在加载产品模型的其他属性后,您可以使用它填充 NumberOfLikes 属性并显示它。

如果您希望每次都有产品模型对象时设置 NumberOfLikes 属性的值,则可以执行以下操作:

public partial class Product
{ 
  int _numberOfLikes;
  public int NumberOfLikes{

  get{ 
   return _numberOfLikes;
     }

   set{
        _numberOfLikes = this.xxxxx ( the this keyword gives you access to all properties your earlier product model has )
      }
}

注意: 从新的分部类设置"点赞数"值可能会影响性能。