c# - 实体框架无法在模型上添加新数据
问题描述
我有一个与书店合作的项目。当用户购买书籍时,我想在 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
我应该怎么做才能将用户 ID 添加到新记录?谢谢
模型/用户.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();
推荐阅读
- javascript - How to request refresh and access tokens from Spotify API?
- mongodb - How can I complete a string concatenation inside a project stage using C# and the Mongo aggregation pipeline?
- javascript - 为什么清除命令不起作用?(没有错误) discord.js
- flutter - 在 null 上调用了方法“数据”。接收方:null 尝试调用:data()
- shell - zsh 中 echo 与 printf 命令行参数的不同行为
- c# - 实体框架:即使使用流利的 api 或数据注释,列名 *_ID 也无效
- javascript - 访问声明的变量
- gradle - 使用 clearcase 时无法使用 gradle 构建
- python - 尝试运行放大推送时,为什么它在错误的位置寻找 python
- python - 在之前的任何位置查找具有字母数字字符的非字母数字字符