Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模型生成误差_C#_Entity Framework - Fatal编程技术网

C# 模型生成误差

C# 模型生成误差,c#,entity-framework,C#,Entity Framework,Riddle_问题::引用约束的从属角色中所有属性的类型必须与主体角色中相应的属性类型相同。实体“Question”上的属性“Riddle Id”的类型与引用约束“Question\u Riddle”中实体“Riddle”上的属性“Id”的类型不匹配 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.Data.Entity.ModelConfiguration.ModelValidationException:

Riddle_问题::引用约束的从属角色中所有属性的类型必须与主体角色中相应的属性类型相同。实体“Question”上的属性“Riddle Id”的类型与引用约束“Question\u Riddle”中实体“Riddle”上的属性“Id”的类型不匹配

描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.Data.Entity.ModelConfiguration.ModelValidationException:在模型生成过程中检测到一个或多个验证错误:

Riddle_问题::引用约束的从属角色中所有属性的类型必须与主体角色中相应的属性类型相同。实体“Question”上的属性“Riddle Id”的类型与引用约束“Question\u Riddle”中实体“Riddle”上的属性“Id”的类型不匹配

源错误:

谜语模型:

public class Riddle
{
    public int Id { get; set; }
    public string Name { get; set; }
    [MaxLength(200)]
    [DataType(DataType.MultilineText)]
    public string Description { get; set; }
    public virtual List<Review> Reviews { get; set; }
    public virtual ApplicationUser User { get; set; }
    public virtual List<Question> Questions { get; set; }
    [Column(TypeName = "datetime2")]
    public DateTime CreationDate { get; set; }
}
上面说

实体“Question”上的属性“Riddle Id”的类型与引用约束“Question\u Riddle”中实体“Riddle”上的属性“Id”的类型不匹配


但它们都是int,所以它们应该匹配。这里缺少什么?

您在错误的属性上有属性
[Column(TypeName=“datetime2”)]
。它应该在
CreationDate
结束,而不是
RiddleId

public class Question {
  ... 
  public Riddle Riddle { get; set; }
  public int RiddleId { get; set; }
  [Column(TypeName = "datetime2")]
  public DateTime CreationDate { get; set; }
  ...
}

似乎这只是一个让您望而却步的输入错误。您正在指定RiddleId字段的类型应为datetime2,并带有Column属性

[Column(TypeName = "datetime2")]
public int RiddleId { get; set; }
应该是-

public int RiddleId { get; set; }
[Column(TypeName = "datetime2")]
public DateTime CreationDate { get; set; }
[Column(TypeName = "datetime2")]
public int RiddleId { get; set; }
public int RiddleId { get; set; }
[Column(TypeName = "datetime2")]
public DateTime CreationDate { get; set; }