在 C# 中使用属性扩展 class
extend class in c# with properties
我在我的 mvc 项目中使用 Entity framework 6(数据库优先)。数据库有一个名为 User 的 table,其中包含名称、地址、电子邮件等列。因此,在我的项目中,我的项目中自动生成了 User.cs class 。我需要使用一些属性扩展该用户 class。我应该创建它以使用此 prpoerty 扩展 class 吗?
public partial class User
{
public bool SomeBoolProperty { get; set; }
}
如果可以,我应该在哪里添加它?我试图将它添加到名为 partials\user.cs 的文件夹下,但是这样做时,在查看可用属性时,此 属性 不可用。
您可以有一个从用户 class 派生的子 class。
例如:
public class childClass:User
{
public bool SomeBoolProperty { get; set; }
}
您可以像这样访问这些属性
User _user= new ChildClass();
_user.SomeBoolProperty =10;
当您在 "Partial" 文件夹中添加部分 class 时,Visual Studio 可能会将 .Partials
添加到部分 class 的命名空间添加,因为约定是名称空间应遵循文件夹路径。在这种情况下,编译器不会将自动生成的 class 与您创建的部分 class 结合起来,因为它们位于不同的命名空间中。
确保命名空间在您的部分 class 和生成的 class 中相同。
您需要确保您为手写partial class User
指定的namespace
是 与 EF6 生成的 partial class User
完全相同e。如果两者之间的名称空间不同,那么部分 类 将不会放在一起,它们将保持分开。
在您的 User.cs 中,您可以使用属性上方的 [NotMapped] 属性添加不会映射到数据库的属性:
public class User
{
//Your autogenerated properties
[NotMapped]
public bool SomeBoolProperty { get; set; }
[NotMapped]
public int AnotherProperty { get; set; }
}
我在我的 mvc 项目中使用 Entity framework 6(数据库优先)。数据库有一个名为 User 的 table,其中包含名称、地址、电子邮件等列。因此,在我的项目中,我的项目中自动生成了 User.cs class 。我需要使用一些属性扩展该用户 class。我应该创建它以使用此 prpoerty 扩展 class 吗?
public partial class User
{
public bool SomeBoolProperty { get; set; }
}
如果可以,我应该在哪里添加它?我试图将它添加到名为 partials\user.cs 的文件夹下,但是这样做时,在查看可用属性时,此 属性 不可用。
您可以有一个从用户 class 派生的子 class。
例如:
public class childClass:User
{
public bool SomeBoolProperty { get; set; }
}
您可以像这样访问这些属性
User _user= new ChildClass();
_user.SomeBoolProperty =10;
当您在 "Partial" 文件夹中添加部分 class 时,Visual Studio 可能会将 .Partials
添加到部分 class 的命名空间添加,因为约定是名称空间应遵循文件夹路径。在这种情况下,编译器不会将自动生成的 class 与您创建的部分 class 结合起来,因为它们位于不同的命名空间中。
确保命名空间在您的部分 class 和生成的 class 中相同。
您需要确保您为手写partial class User
指定的namespace
是 与 EF6 生成的 partial class User
完全相同e。如果两者之间的名称空间不同,那么部分 类 将不会放在一起,它们将保持分开。
在您的 User.cs 中,您可以使用属性上方的 [NotMapped] 属性添加不会映射到数据库的属性:
public class User
{
//Your autogenerated properties
[NotMapped]
public bool SomeBoolProperty { get; set; }
[NotMapped]
public int AnotherProperty { get; set; }
}