C# 实体框架(代码优先)&;ASP.net成员资格提供程序
我目前正在尝试使用EF6代码构建一个新的应用程序。首先,我设法根据我的模型创建数据库,没有问题 现在我想做的是使用asp.net成员资格功能。因此,我必须将数据库模式放在数据库中 我该怎么做 互联网上有关于将simplemembershipprovider与EF一起使用的信息,但这非常令人困惑 只是想让你知道我到目前为止做了什么…(下面) 那么,使用EF会员资格的最佳方式是什么C# 实体框架(代码优先)&;ASP.net成员资格提供程序,c#,asp.net,entity-framework,ef-code-first,code-first,C#,Asp.net,Entity Framework,Ef Code First,Code First,我目前正在尝试使用EF6代码构建一个新的应用程序。首先,我设法根据我的模型创建数据库,没有问题 现在我想做的是使用asp.net成员资格功能。因此,我必须将数据库模式放在数据库中 我该怎么做 互联网上有关于将simplemembershipprovider与EF一起使用的信息,但这非常令人困惑 只是想让你知道我到目前为止做了什么…(下面) 那么,使用EF会员资格的最佳方式是什么 namespace AsoRock.Data.DTOs { public class Customer
namespace AsoRock.Data.DTOs
{
public class Customer
{
[Key]
public int CustomerId { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string HomeNumber { get; set; }
public string MobileNumber { get; set; }
public string Gender { get; set; }
public DateTime Dob { get; set; }
}
public class Order
{
[Key]
public int OrderId { get; set; }
public Address Address { get; set; }
public Customer Customer { get; set; }
public List<Product> Products { get; set; }
}
public class Product
{
[Key]
public int ProductId { get; set; }
public string ProductName { get; set; }
public decimal ProductPrice { get; set; }
}
public class Address
{
[Key]
public int AddressId { get; set; }
public Customer Customer { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string PostCode { get; set; }
public string LastUsed { get; set; }
public bool isDefault { get; set; }
}
public class AsoRockContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Address> Addresses { get; set; }
public DbSet<Order> Orders { get; set; }
// public DbSet<Product> Products { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().HasMany(p => p.Products).WithMany().Map(m =>
{
m.MapLeftKey("OrderId").MapRightKey("ProductId").ToTable("OrderdProducts");
});
base.OnModelCreating(modelBuilder);
}
}
}
namespace asorck.Data.DTOs
{
公共类客户
{
[关键]
public int CustomerId{get;set;}
公共字符串标题{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串电子邮件{get;set;}
公共字符串HomeNumber{get;set;}
公共字符串MobileNumber{get;set;}
公共字符串{get;set;}
公共日期时间Dob{get;set;}
}
公共阶级秩序
{
[关键]
公共int-OrderId{get;set;}
公共广播地址{get;set;}
公共客户客户{get;set;}
公共列表产品{get;set;}
}
公共类产品
{
[关键]
public int ProductId{get;set;}
公共字符串ProductName{get;set;}
公共十进制产品价格{get;set;}
}
公共课堂演讲
{
[关键]
public int AddressId{get;set;}
公共客户客户{get;set;}
公共字符串AddressLine1{get;set;}
公共字符串AddressLine2{get;set;}
公共字符串City{get;set;}
公共字符串邮政编码{get;set;}
上次使用的公共字符串{get;set;}
公共布尔值是默认值{get;set;}
}
公共类上下文:DbContext
{
公共数据库集客户{get;set;}
公共数据库集地址{get;set;}
公共数据库集命令{get;set;}
//公共数据库集产品{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().HasMany(p=>p.Products).WithMany().Map(m=>
{
m、 MapLeftKey(“OrderId”).MapRightKey(“ProductId”).ToTable(“OrderdProducts”);
});
基于模型创建(modelBuilder);
}
}
}
如果您使用的是MVC 5,则可以更改
公共类上下文:DbContext
将来
public class AsoRockContext : IdentityDbContext<ApplicationUser>
Asp.net MVC 4+附带Asp.net成员资格提供程序。 因此,您的上下文名称是
TestConnection
,然后
在模型目录中的AccountModel中,将defaultConnection
更改为TestConnection
这样,它将在数据库中创建成员表
public UsersContext()
: base("TestConnection")
{
}
要了解更多关于如何实现的信息,请参阅代码、AccountController文件并在顶部找到以下内容
[姓名首字母缩写SampleMembership]
公共类AccountController:控制器
检查
[InitializeSimpleMembership]
属性以了解它是如何实现的。哪个版本的asp.net mvc?您能给我一些详细信息吗。目前我的解决方案中只有一个项目(AsoRock.Data)这就是我放置所有EF代码的地方。(先编写代码)那么,如果我创建一个MVC5项目(asorok.Web),你是说我将在asorok.data中调用AsoRockContext,你能给我提供更多信息吗。我目前在我的解决方案中只有一个项目(asorok.Data),这就是我放置所有EF代码的地方。(首先编码)那么,如果我创建一个MVC5项目(AsoRock.Web),你是说我会在AsoRock.Data中调用AsoRockContext,这对更新模型时自动创建数据库有什么影响@ASGYou可以将上下文(和数据库集)放在MVC项目中,然后添加对Asorrock.Data项目的引用当您说将上下文和数据库集放在MVC项目中时,我想您指的是创建数据库的所有代码……对吗?那么,如果我这样做了,我就不需要一个.data项目了。这取决于项目的规模。如果要在其他地方重用数据类,请保留它。只要您的MVC项目引用它,您就可以使用任何其他项目创建您的上下文和数据库集
public UsersContext()
: base("TestConnection")
{
}