繁体   English   中英

使用属性扩展 c# 中的类

[英]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 Usernamespace完全相同 如果两者之间的命名空间不同,那么分部类将不会放在一起,它们将保持分开。

在您的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM