Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF DatabaseInitializer通过带有重载的列表方法循环,_C#_Asp.net_Linq_Entity Framework_Ef Code First - Fatal编程技术网

C# EF DatabaseInitializer通过带有重载的列表方法循环,

C# EF DatabaseInitializer通过带有重载的列表方法循环,,c#,asp.net,linq,entity-framework,ef-code-first,C#,Asp.net,Linq,Entity Framework,Ef Code First,下面是我的initializer.cs,有人告诉我,为了保留我的guid,我必须使用导航属性,以便在数据库()中拥有正确的关系。这似乎解决了我之前遇到的问题,但现在我想获取我的信息并使用种子将其添加到数据库中,我不确定如何满足此错误。我得到的错误是addUsers(Applications apps)“eflogin.Models.Applications是一个像变量一样使用的“类型”。我感觉我这样做是错误的 public class DatabaseIntializer : DropCreat

下面是我的
initializer.cs
,有人告诉我,为了保留我的guid,我必须使用导航属性,以便在数据库()中拥有正确的关系。这似乎解决了我之前遇到的问题,但现在我想获取我的信息并使用种子将其添加到数据库中,我不确定如何满足此错误。我得到的错误是
addUsers(Applications apps)
“eflogin.Models.Applications是一个像变量一样使用的“类型”。我感觉我这样做是错误的

public class DatabaseIntializer : DropCreateDatabaseIfModelChanges<DataContext>
        {
protected override void Seed(DataContext context)
                {
                    addApplications().ForEach(a => context.Applications.Add(a));
                    addUsers(Applications apps).ForEach(u => context.User.Add(u));
                      // if i take out Applications apps
                      // i get No overload for method"addUsers" takes 0 arguments 
                }

private static List<Applications> addApplications()
            {

                var apps = new List<Applications>
                {
                    new Applications
                    {
                      ApplicationId = Guid.NewGuid(),
                      ApplicationName = "Test Login"

                    }
                };

                return apps;
            }
private static List<Users> addUsers(Applications apps)
            {
                var use = new List<Users>
                {
                    new Users
                    {
                        UserId = Guid.NewGuid(),
                        UserApplication = apps,
                        UserName = "Ralph",
                        IsAnonymouse = false,
                        LastActivityDate = System.DateTime.Now


                    }
                };
                return use;

            }
公共类DatabaseInitializer:DropCreateDatabaseIfModelChanges { 受保护的覆盖无效种子(DataContext上下文) { addApplications().ForEach(a=>context.Applications.Add(a)); addUsers(Applications.apps.ForEach(u=>context.User.Add(u)); //如果我拿出应用程序 //我没有为方法“addUsers”获取重载,该方法接受0个参数 } 私有静态列表addApplications() { var apps=新列表 { 新应用 { ApplicationId=Guid.NewGuid(), ApplicationName=“测试登录” } }; 返回应用程序; } 私有静态列表添加用户(应用程序) { var use=新列表 { 新用户 { UserId=Guid.NewGuid(), 用户应用程序=应用程序, 用户名=“拉尔夫”, IsAnonymouse=false, LastActivityDate=System.DateTime.Now } }; 归还使用; }
问题在于您正在调用addUsers方法时传入类型和实例

addUsers(Applications apps)
如果你删除应用程序,然后像这样离开应用程序

addUsers(apps)
您将获得另一个错误,因为您正在传入一个对象集合,而该方法需要一个实例

下面是一个建议的对种子进行编辑的方法,可以让您克服这两个错误

var apps = addApplications();
apps.ForEach(a => context.Applications.Add(a));

foreach (var app in apps)
{
    var users = addUsers(app)
    users.ForEach(u => context.User.Add(u));
}

注意:我认为保持实体名称的复数形式有助于引起一些混乱。

到目前为止,我明白了。你能解释一下apps中的
var应用程序吗?对不起,这是我唯一不明白的事情。我知道
var应用程序
声明了它,但它在
应用程序中是如何实现的?我不100%确定你不清楚什么,但这里可能有一些相关信息vant pages。您可以使用多个重载
addUserInRoles(用户使用,角色).ForEach(ur=>context.UserInRoles.Add(ur))来实现这一点吗;
?您的意思是重载,还是因为示例代码没有addUserInRoles方法而只是指多个参数?对不起,术语错误。您的多个参数是正确的。如果您投了反对票,请留下+1是有效问题的原因,以抵消-1