Asp.net mvc 是否在另一个数据库中的表中引用ASP.NET MVC3中使用默认成员资格提供程序创建的用户?

Asp.net mvc 是否在另一个数据库中的表中引用ASP.NET MVC3中使用默认成员资格提供程序创建的用户?,asp.net-mvc,entity-framework,asp.net-membership,membership-provider,Asp.net Mvc,Entity Framework,Asp.net Membership,Membership Provider,要引用表中的外键,我使用以下代码: public class MyClass { public int ExampleID { get; set; } public virtual Example Example { get; set; } } 如何在ASP.NET的MVC 3中使用的默认成员资格提供程序中引用用户 我认为这将是一件简单的事情: public class MyClass { public int UserID { get; set; } publ

要引用表中的外键,我使用以下代码:

public class MyClass
{
    public int ExampleID { get; set; }
    public virtual Example Example { get; set; }
}
如何在ASP.NET的MVC 3中使用的默认成员资格提供程序中引用用户

我认为这将是一件简单的事情:

public class MyClass
{
    public int UserID { get; set; }
    public virtual User User { get; set; }
}
。但我不知道如何具体地引用用户(没有“User”类,我知道有LogOnModel和RegisterModel类,但它们并不直接引用用户本身)

我如何在我的表格中实现这种关系?

我是否以一种被认为是非常规的方式来处理这种情况


(需要明确的是:我想在使用默认成员资格提供程序创建的用户和我自己数据库中的表之间建立一种关系)

否。首先,为了做到这一点,您需要将用户表映射到数据模型中。但是,不建议这样做,因为这样会有两个不同的系统管理相同的数据

相反,您可以这样做:

from d in dc.MyClasses where d.UserID == Membership.GetUser().ProviderUserKey select d
以便找出与您的数据关联的用户。您需要向类中添加uniqueidentifier列,然后在创建MyClass时添加users ProviderUserKey。然后,当您获得MyClass时,通过成员API按键查找用户

编辑:

我没注意到你说的是另一个数据库。正如我在评论中所说,EntityFramework不支持其他数据库中的映射表。它只是一个数据库。可以创建映射到另一个数据库的视图,然后将这些视图映射到您的数据库中,但是您必须手动管理所有关系,并且它将是只读的


访问另一个数据库中的成员资格数据的最简单方法是将成员资格数据提供程序指向该数据库(成员资格api提供程序与EF数据库具有不同的连接字符串),然后使用我上面提到的技术。

您不能从Entity Framework访问另一个数据库中的表。不支持这样做,我将使用不同的解决方法。作为后续工作,我发现使用SQL 2005+中名为“同义词”的功能将表从其他数据库映射到您的数据模型中相对容易。然而,这实际上只适用于代码优先。首先,数据库和模型无法理解同义词。