Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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/0/performance/5.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# ASP.NET MVC插入到两个单独的表中_C#_Exception_Model View Controller_Insert - Fatal编程技术网

C# ASP.NET MVC插入到两个单独的表中

C# ASP.NET MVC插入到两个单独的表中,c#,exception,model-view-controller,insert,C#,Exception,Model View Controller,Insert,你好,我是ASP.NETMVC的新手 我有三个类Login,User和thetraderscoxt,如下所示: namespace SimpleUser.Models { [Table("login")] public class Login { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int ID { get;

你好,我是ASP.NETMVC的新手

我有三个类
Login
User
thetraderscoxt
,如下所示:

namespace SimpleUser.Models
{
    [Table("login")]
    public class Login
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int ID { get; set; }

        [Required]
        [StringLength(50)]
        [Display(Name = "Email")]
        public string email { get; set; }

        [Required]
        [DataType(DataType.Password)]

        [Display(Name = "Password")]
        public string password { get; set; }

        public string status { get; set; }

        public string salt { get; set; }
    }
}
namespace SimpleUser.Models
{
    [Table("userdata")]
    public class User
    {

        public int ID { get; set; }
        public string surname { get; set; }
        public string name { get; set; }
        public string sex { get; set; }
        public string city { get; set; }
        public string address { get; set; }
        public string zipcode { get; set; }
        public string tel { get; set; }
        public string bdate { get; set; }
        public string country { get; set; }
    }
}
namespace SimpleUser.Models
{
    public class TheTradersContext : DbContext
    {
        public DbSet<Login> loginusers { get; set; }
        public DbSet<User> allusers { get; set; }

    }
}
数据库中的“我的表”与用户上的字段名称完全相同

当然,我试图排除与登录有关的代码,只传递数据库中userdata的值,但我看到了异常:
System.Data.Entity.Infrastructure.DbUpdateException


到现在为止,我已经尝试了很多东西。。。有什么想法吗

从您的代码来看,登录名和用户之间似乎存在1对多的关系,每个登录名都有一个或多个用户(我发现这是因为您试图将
User.ID=Convert.ToInt32(useri.ID);)

在类中,用户放置一个名为
public-Login-Login{get;set;}

用户类应该有一个主键,比如说(UserId),除非您将ID标记为主键,否则您的用户表是一个弱实体。 并将新属性登录的ForeignKey属性标记为ForeignKey(“ID”)

完成此操作后,您可以轻松地执行以下操作

var login=new Login();
// fill out the login data
db.loginusers.Add(login)

db.allusers.Add(new User(){
   surname = forms["lastname"].ToString(),
   name = forms["firstname"].ToString(),
   sex = forms["gender"].ToString(),
   city = forms["city"].ToString(),
   address = forms["addr"].ToString(),
   zipcode =forms["zip"].ToString(),
   tel = "fdgfdgf".ToString(),
   country = forms["country"].ToString(),
   bdate ="dsafdsaf".ToString(),
   Login=login 
});

db.SaveChanges();
希望他能帮助你


注意:您的类设计可以改进和规范化,以反映数据库关系

非常感谢!!这对我有用。。。两个表之间的关系丢失了,我不知道我必须声明它!!
var login=new Login();
// fill out the login data
db.loginusers.Add(login)

db.allusers.Add(new User(){
   surname = forms["lastname"].ToString(),
   name = forms["firstname"].ToString(),
   sex = forms["gender"].ToString(),
   city = forms["city"].ToString(),
   address = forms["addr"].ToString(),
   zipcode =forms["zip"].ToString(),
   tel = "fdgfdgf".ToString(),
   country = forms["country"].ToString(),
   bdate ="dsafdsaf".ToString(),
   Login=login 
});

db.SaveChanges();