我正在学习C#并且遇到了viewmodels和AutoMapper的问题。
我目前有两个模型类和一个视图模型,如下所示:
using System.ComponentModel.DataAnnotations;
namespace CarShowroom.Models
{
public class CarModel
{
[Key]
public int ModelID { get; set; }
public string Manufactuer { get; set; }
public string Model { get; set; }
public int ModelYear { get; set; }
public virtual Manufacturer manufacturer { get; set; }
public static int ManufacturerID { get; internal set; }
}
}
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
namespace CarShowroom.Models
{
public class Manufacturer
{
[Key]
public int ManufacturerID { get; set; }
public string ManufacturerName { get; set; }
public virtual List<CarModel> carModels { get; set; }
}
}
using System.Collections.Generic;
namespace CarShowroom.Models
{
public class CarViewModel
{
public IList<CarModel> CarModel { get; set; }
public Manufacturer Manufacturer { get; set; }
}
}
问题是当我尝试使用CarViewModel
类添加控制器时,收到错误消息
CarViewModel:EntityType'CarViewModel'没有定义键。定义此EntityType的键 CarViewModels:EntityType:EntitySet'CarViewModels'基于类型'CarViewModel',没有定义键。'
我已经研究过如何在线创建视图模型,并且发现您不需要键,因为这不是数据库表。请问有人可以建议我在制作视图模型时出错了,为什么EF认为这应该是一张桌子?
我也尝试过使用AutoMapper,但是我发现的教程太旧了,他们使用的功能现已被删除,我无法找到一个新的教程,它真正解释了如何实现映射以及我应该在哪里写'地图'。
如果有人可以就两种解决方案中的任何一种提出建议,那么我就可以继续学习,我会非常感激,因为我已经坚持这个问题好几周了。我一直在寻找一个使用AutoMapper的小型完成的项目/教程,这样我就可以阅读并理解AutoMapper的工作原理以及它应该如何/在哪里写,但我找不到任何东西。
谢谢, 丹尼。