C# ASP.NET MVC插入到两个单独的表中
你好,我是ASP.NETMVC的新手 我有三个类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;
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();