[英]extend class in c# with properties
我在我的 mvc 项目中使用实体框架 6(数据库优先)。 该数据库有一个名为 User 的表,其中包含姓名、地址、电子邮件等列。 因此,在我的项目中,我在我的项目中自动生成了 User.cs 类。 我需要使用一些属性扩展该用户类。 我是否应该创建它以使用此属性扩展类..?
public partial class User
{
public bool SomeBoolProperty { get; set; }
}
如果是这样,我在哪里添加它? 我试图将它添加到名为 partials\\user.cs 的文件夹下,但是这样做时,在查看哪些属性可用时,此属性不可用。
您可以有一个从 User 类派生的子类。
前任:
public class childClass:User
{
public bool SomeBoolProperty { get; set; }
}
您可以像这样访问这些属性
User _user= new ChildClass();
_user.SomeBoolProperty =10;
当您在“Partial”文件夹中添加.Partials
类时,Visual Studio 可能会将.Partials
添加到您添加的.Partials
类的命名空间中,因为约定是命名空间应遵循文件夹路径。 在这种情况下,编译器不会将自动生成的类与您创建的分部类连接起来,因为它们位于不同的命名空间中。
确保您的分部类和生成的类中的命名空间相同。
您需要确保为手写partial class User
指定的namespace
与 EF6 生成的分部partial class User
的namespace
完全相同。 如果两者之间的命名空间不同,那么分部类将不会放在一起,它们将保持分开。
在您的 User.cs 中,您可以使用属性上方的 [NotMapped] 属性添加不会映射到数据库的属性:
public class User
{
//Your autogenerated properties
[NotMapped]
public bool SomeBoolProperty { get; set; }
[NotMapped]
public int AnotherProperty { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.