如何解决实体框架无法在模型上添加新数据
我有一个与书店合作的项目。当用户购买一本书时,我想在 SoldBooks 表中添加一条记录,其中包含有关该书和用户的信息。但是除了我想添加用户 ID 之外,添加一切都很好。 Visual Studio 不允许我添加一个 int“不能隐式地将类型 INT 转换为 models.User”
db.soldBooks.Add(new SoldBook
{
Title = book.Title,Author = book.Author,Price = book.Price,PurchaseDate = DateTime.Now,CategoryId = catid,User = 1
});
db.SaveChanges();
但是当我检查我的数据库时,字段 UserId 说它是一个 INT
模型/User.cs
class User
{
public int Id { get; set; }
[required]
public string Name { get; set; }
[required]
public string Password { get; set; }
public DateTime LastLogin { get; set; }
public DateTime SessionTimer { get; set; }
public bool IsActive { get; set; }
public bool IsAdmin { get; set; }
}
模型/SoldBook.cs
class SoldBook
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public int CategoryId { get; set; }
public int Price { get; set; }
public DateTime PurchaseDate { get; set; }
public User User { get; set; }
}
解决方法
进行此更改(您必须添加有关 ForeignKey 的信息,以便 EF 可以知道两个表是如何相关的):
class SoldBook
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public int CategoryId { get; set; }
public int Price { get; set; }
public DateTime PurchaseDate { get; set; }
public int IdUser { get; set; }
[ForeignKey("IdUser")]
public User User { get; set; }
}
然后添加记录:
db.SoldBooks.Add(new SoldBook
{
Title = book.Title,Author = book.Author,Price = book.Price,PurchaseDate = DateTime.Now,CategoryId = catid,IdUser = 1
});
db.SaveChanges();
,
您应该向您的 SoldBook 对象添加额外的 UserId 字段并使用它代替 User
public int UserId { get; set; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。