C# 实体框架类型的别名?

C# 实体框架类型的别名?,c#,entity-framework,C#,Entity Framework,考虑实体框架模型: public class Location { public bool IsCustomer { get; set; } public bool IsSupplier { get; set; } } public class Customer : Location {} public class Supplier : Location {} 在这种情况下,我希望将Customer作为别名。每当我获得DbSet时,它都应该返回所有位置中的IsCustom

考虑实体框架模型:

public class Location
{
    public bool IsCustomer { get; set; }

    public bool IsSupplier { get; set; }
}

public class Customer : Location {}

public class Supplier : Location {}
在这种情况下,我希望将
Customer
作为别名。每当我获得
DbSet
时,它都应该返回所有
位置
中的
IsCustomer==true


这可能吗?谢谢

签出以下代码以使用指令而不是使用类名本身:

using myLocation = mytestApp.Location;

namespace mytestApp
{
    public class Customer : Location 
    {
        private void myMethod()
        {
            myLocation loc = new myLocation();
            loc.IsCustomer = true;
            loc.IsSupplier = false;
        }
    }

    public class Supplier : Location { }
}

签出以下代码以使用指令而不是使用类名本身:

using myLocation = mytestApp.Location;

namespace mytestApp
{
    public class Customer : Location 
    {
        private void myMethod()
        {
            myLocation loc = new myLocation();
            loc.IsCustomer = true;
            loc.IsSupplier = false;
        }
    }

    public class Supplier : Location { }
}

您可以使用TPH并配置鉴别器。使用指令如何?例如,
使用LocationCustomer=YournameSpace.Location
@AluanHaddad:这不起作用,因为代码优先映射(例如
m=>m.Requires(“IsCustomer”).HasValue(true)
将导致实体框架创建列并抛出错误,因为列存在两次。在我的例子中,我想要一种流体类型,用户可以在其中更改
IsCustomer
并查询它。@kashi_rock:你能解释一下吗?不确定如何解决它。谢谢。你可以使用TPH并配置鉴别器。使用direct如何例如,
使用LocationCustomer=YournameSpace.Location;
@AluanHaddad:这不起作用,因为代码优先映射(例如
m=>m.Requires(“IsCustomer”)。HasValue(true)
将导致实体框架创建列并抛出一个错误,因为列存在两次。在我的例子中,我想要一个流体类型,用户可以在其中更改
IsCustomer
并对其进行查询。@kashi_rock:你能解释一下吗?不知道如何解决它。谢谢。也许我不明白你在做什么,但这是怎么回事完成任何事情?
myMethod
不是一个构造函数,实体框架仍然需要以某种方式区分不同的类型。它不是一个构造函数,而是一个方法,我解释了如何使用指令myLocation而不是类名Location。也许我不明白您在做什么,但这是如何实现的任何东西?
myMethod
都不是构造函数,实体框架仍然需要以某种方式区分类型。它不是构造函数,而是一种方法,我解释了如何使用指令myLocation而不是类名Location