【发布时间】:2014-09-10 20:45:18
【问题描述】:
我有一个继承自 ApplicaitonUser 的模型,定义如下:
public class Business : ApplicationUser
{
...
}
然后,在我的配置中,我从 CSV 文件中读取所有信息,并创建一个业务对象列表。然后,我想将他们全部创建为新用户并将其添加到数据库中,并给他们一个默认密码(稍后我会通过电子邮件向列表中的所有用户发送密码,以便他们可以更改密码)。我想我需要使用 UserManager.CreateAsync 方法,但我似乎无法从我的配置文件中引用它。
目前,我有这样的事情,我从 CSV 文件中读取了所有业务特定信息:
foreach (string csv in csvs)
{
using (CsvReader reader = new CsvReader(csv))
{
foreach (string[] values in reader.RowEnumerator)
{
businesses.Add(new Business
{
BusinessName = values[0],
Email = values[1],
Address = values[2],
City = values[3],
StateID = states.Single(s => s.StateCode == values[4]).StateID,
Zip = values[5],
Phone = values[6],
Fax = values[7],
SICCode = values[8],
Description = values[9],
Website = values[10]
});
}
}
}
然后,我想我需要一个类似于下面的 foreach 语句来遍历所有业务,但我不知道这是否是正确的方法,即使是,我如何访问来自 Configuration.cs 文件的 UserManager?我似乎无法从配置中访问它。
foreach (Business b in businesses)
{
var result = await UserManager.CreateAsync(b, "MyPassword");
}
【问题讨论】:
-
您能否在 Business Class 中添加一个密码字段并在创建新 Business 时为其分配一个默认值 { } 您能否展示一下 Business 是如何完全定义的
-
@DJKRAZE 我的商务舱包括以上所有字段。电子邮件除外。关键是它继承自ApplicationUser,所以它也有它的所有字段,从那里来的Email字段。我的问题是如何创建新用户并将它们从配置文件存储在数据库中。我想我需要类似下面的 foreach 语句。但是,我根本无法从我的配置文件中访问 UserManager。设置默认密码是没有问题的,而 CreateAsync 接受两个参数,一个是 ApplicationUser,一个是密码。
-
你说的Configuration.cs文件是什么意思?您是否尝试为数据库播种?
-
@ett 有点晚了,但我发布了一个关于如何使用 EF 配置文件为数据库播种的答案。
标签: c# asp.net-mvc entity-framework csv asp.net-identity