我正在使用EF Core(代码优先和迁移)。
当我尝试使用以下方法将模型(商品)保存到数据库时简单:
_context.Offers.Add(offer);
await _context.SaveChangesAsync();
我从实体框架中得到一个例外:
SqlException:列名无效' UserGroupId'
但我的UserGroupId
课程中有 NO 这样的Offer
属性。我从Offer
模型类中删除了它。
数据库表中还有 NO UserGroupId
列。
当我检查我的日志时,我看到Entity Framework使用此UserGroupId
列生成一个SQL INSERT语句。
问题:
是否有人知道Entity Framework对此UserGroupId
ghost列有任何引用?
感谢您提供反馈或提示。
奥利弗
更新1 :
现在,在我做了激进的步骤后,它变得非常奇怪。
最后我再次检查了生成的Offers
表。
我看到的是,UserGroupId
列仍在此表格中再次生成...
EF中有一些魔法,我必须知道吗?为什么EF仍会生成此UserGroupId
列?
更新2
这是我的优惠模型。我认为这很简单,我看不到 原因,为什么UserGroupId生成到表中。 UserGroupId是Offer模型类中的错误属性。 我删除了它。
namespace Common.Models
{
public class Offer
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime ValidFrom { get; set; }
public DateTime ValidTo { get; set; }
public bool PickupLocationVerified { get; set; }
public string PickupStreet { get; set; }
public string PickupPlace { get; set; }
public string PickupZip { get; set; }
public Country PickupCountry { get; set; }
public string Longitude { get; set; }
public string Latitude { get; set; }
public Order Order { get; set; }
public User Supplier { get; set; }
public int SupplierId { get; set; }
public SupplierRating SupplierRating { get; set; }
public int? SupplierRatingId { get; set; }
public ConsumerRating ConsumerRating { get; set; }
public int? ConsumerRatingId { get; set; }
public List<Message> Messages { get; set; }
public List<Image> Images { get; set; }
public List<Article> Articles { get; set; }
public bool Active { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
public Group Group { get; set; }
}
}
答案 0 :(得分:0)
我找到了答案。 问题出在UserGroup模型类中。
仍有错误的财产:
public List<Offer> Offers { get; set; }
老实说,我不敢相信,我之前没有看到它。
谢谢大家并对不起。