在Asp.Net MVC中将数据插入数据库时如何设置外键的值

易卜拉欣

我正在使用代码优先方法。我有两个班级如下:

public class User
{
    [Key]
    [Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int User_id { get; set; }

    [Required]
    [Column(Order = 1)]
    [StringLength(50)]
    [Display(Name = "Name")]
    public string name { get; set; }

    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode =true,DataFormatString ="{0:dd/MM/yyyy}")]
    public DateTime? date_of_birth { get; set; }

    [Required]
    [Column(Order = 3)]
    [StringLength(254)]
    [Display(Name = "Email")]
    [DataType(DataType.EmailAddress)]
    public string email { get; set; }

    public virtual ICollection<Product> products { get; set; }
}

public class Product
{
    [Key]
    [Required]
    public int product_id { get; set; }

    public int UserId { get; set; }
    public virtual User user { get; set; }

    [Required]
    public string title { get; set; }

    [Required]
    public int type { get; set; }

    [DataType(DataType.Date)]
    public DateTime date_of_release { get; set; }

    [Required]
    public float price { get; set; }
}

我正在尝试添加新产品并将其与登录用户相关联。

这是我的视图模型:

public class AddProductViewModel
{
    [Required]
    public string title { get; set; }

    [Required]
    public int type { get; set; }

    [DataType(DataType.Date)]
    public DateTime date_of_release { get; set; }

    [Required]
    public float price { get; set; }
}

我无法弄清楚如何设置已登录用户ID的userId的值,因此我最终从数据库中查询了它并将其设置如下:

[HttpPost]
public ActionResult AddProduct(AddProductViewModel added)
{
    if(ModelState.IsValid)
    {
        using (KitapTakasDB db = new KitapTakasDB())
        {
            string user_email = User.Identity.GetUserName();

            Product product = new Product();
            product.title = added.title;
            product.price = added.price;
            product.type = added.type ;
            product.userId = db.User.Where(o => o.email == 
            user_email).FirstOrDefault().user_id;

            db.Product.Add(product);
            db.SaveChanges();  //this is where the crash happens...
        }

        return RedirectToAction("Index", "Home");
    }

    return View();
}

提交表单时,我在db.SaveChanges()网上遇到异常

DbUpdateException:'更新条目时发生错误。有关详细信息,请参见内部异常。

内部例外:

datetime2数据类型到datetime数据类型的转换导致超出范围的值

我检查了空的DateTime,但它们不为空。

在向数据库添加新条目时设置外键的正确方法是什么?如果我的方法是正确的(我对此表示怀疑),该如何解决该错误?

谢谢

Sameh Zoaa

您似乎忘记了在此处添加日期。检查它是否不能为空或添加日期:

Product product = new Product();
product.title = added.title;
product.price = added.price;
product.type = added.type ;

product.date_of_release = added.date;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC-Asp.Net身份。用户登录时如何登录到数据库

来自分类Dev

ASP.NET MVC身份数据库

来自分类Dev

ASP.NET MVC 4数据库实体错误

来自分类Dev

当我想在ASP.NET MVC中编辑数据库时,该值为null

来自分类Dev

在ASP.NET MVC 5中将图像添加到数据库

来自分类Dev

在数据库中插入记录时,在asp.net中插入两次

来自分类Dev

如何将ado.net数据库连接到ASP.Net MVC 5

来自分类Dev

如何在剃刀视图中将格鲁吉亚日期从数据库转换为波斯日期?-Asp.net MVC

来自分类Dev

没有数据库的ASP.NET MVC

来自分类Dev

拆分逗号以将多行插入数据库(ASP.NET MVC)

来自分类Dev

使用ASP.NET MVC更新数据库

来自分类Dev

如何基于特定值查询数据库中的列MVC ASP.NET Core

来自分类Dev

如何在ASP.NET MVC中将数据传递到数据库?

来自分类Dev

无需数据库的ASP.NET MVC 4模型

来自分类Dev

在ASP.NET MVC上从数据库显示项目

来自分类Dev

在ASP.NET中将表单值插入数据库

来自分类Dev

仅使用EF插入ASP.NET中数据库字段中的值

来自分类Dev

如何在占位符处从asp.net中的数据库设置值

来自分类Dev

如何首先在ASP.NET MVC中将Identity与Entity Framework数据库一起使用

来自分类Dev

在asp.net mvc中加密密码时,插入数据库失败

来自分类Dev

如何将ado.net数据库连接到ASP.Net MVC 5

来自分类Dev

ASP.NET MVC在编辑时将数据库值检索到DropDownList

来自分类Dev

ASP Net MVC Oracle数据库无法检索数据

来自分类Dev

如何在剃刀视图中将格鲁吉亚日期从数据库转换为波斯日期?-Asp.net MVC

来自分类Dev

根据asp.net mvc5中数据库的值设置下拉列表的值

来自分类Dev

在数据库 asp.net mvc 中插入多条新记录

来自分类Dev

如何将数据从 jQuery 插件设置到数据库 ASP .NET MVC?

来自分类Dev

插入外键asp.net mvc

来自分类Dev

使用asp.net在数据库中插入数据时如何避免重复值?

Related 相关文章

  1. 1

    MVC-Asp.Net身份。用户登录时如何登录到数据库

  2. 2

    ASP.NET MVC身份数据库

  3. 3

    ASP.NET MVC 4数据库实体错误

  4. 4

    当我想在ASP.NET MVC中编辑数据库时,该值为null

  5. 5

    在ASP.NET MVC 5中将图像添加到数据库

  6. 6

    在数据库中插入记录时,在asp.net中插入两次

  7. 7

    如何将ado.net数据库连接到ASP.Net MVC 5

  8. 8

    如何在剃刀视图中将格鲁吉亚日期从数据库转换为波斯日期?-Asp.net MVC

  9. 9

    没有数据库的ASP.NET MVC

  10. 10

    拆分逗号以将多行插入数据库(ASP.NET MVC)

  11. 11

    使用ASP.NET MVC更新数据库

  12. 12

    如何基于特定值查询数据库中的列MVC ASP.NET Core

  13. 13

    如何在ASP.NET MVC中将数据传递到数据库?

  14. 14

    无需数据库的ASP.NET MVC 4模型

  15. 15

    在ASP.NET MVC上从数据库显示项目

  16. 16

    在ASP.NET中将表单值插入数据库

  17. 17

    仅使用EF插入ASP.NET中数据库字段中的值

  18. 18

    如何在占位符处从asp.net中的数据库设置值

  19. 19

    如何首先在ASP.NET MVC中将Identity与Entity Framework数据库一起使用

  20. 20

    在asp.net mvc中加密密码时,插入数据库失败

  21. 21

    如何将ado.net数据库连接到ASP.Net MVC 5

  22. 22

    ASP.NET MVC在编辑时将数据库值检索到DropDownList

  23. 23

    ASP Net MVC Oracle数据库无法检索数据

  24. 24

    如何在剃刀视图中将格鲁吉亚日期从数据库转换为波斯日期?-Asp.net MVC

  25. 25

    根据asp.net mvc5中数据库的值设置下拉列表的值

  26. 26

    在数据库 asp.net mvc 中插入多条新记录

  27. 27

    如何将数据从 jQuery 插件设置到数据库 ASP .NET MVC?

  28. 28

    插入外键asp.net mvc

  29. 29

    使用asp.net在数据库中插入数据时如何避免重复值?

热门标签

归档