我得到了一个例外,当我试图从后面的模型生成数据库。EF6代码第一个模型ForeignKey
'Benchmark.Data.Context'属性'DataCenterBenchmark'上的ForeignKeyAttribute无效。在依赖类型 'Benchmark.Data.Context'上找不到名称'BenchmarkId'的外键 。名称值应该是 逗号分隔的外键属性名称列表。
[Table("Contexts")]
public class Context
{
[Key]
public Guid InternalId { get; set; }
[Required] public string Name { get; set; }
[Required] public string Cluster { get; set; }
[Required] public string Token { get; set; }
[Required] public string IP { get; set; }
[Required] public string Memo { get; set; }
[Required] public string BenchType { get; set; }
[Required] public int InstanceCount { get; set; }
[Required] public int ThreadCount { get; set; }
[Required] public int RequestCount { get; set; }
[Required] public DateTime CreationDate { get; set; }
[Required] public DateTime EditDate { get; set; }
[ForeignKey("BenchmarkId")]
public Benchmark RemoteBenchmark { get; set; }
[ForeignKey("BenchmarkId")]
public Benchmark DataCenterBenchmark { get; set; }
[ForeignKey("BenchmarkId")]
public Benchmark IISBenchmark { get; set; }
[ForeignKey("BenchmarkId")]
public Benchmark LocalBenchmark { get; set; }
[ForeignKey("MachineTypeId")]
[Required] public MachineType MachineType { get; set; }
}
[Table("Benchmarks")]
public class Benchmark
{
[Key]
public int BenchmarkId { get; set; }
[Required] public string Result { get; set; }
[Required] public DateTime Duration { get; set; }
}
[Table("MachineTypes")]
public class MachineType
{
[Key]
public int MachineTypeId { get; set; }
[Required] public string Name { get; set; }
}
public class BenchmarkContext : DbContext
{
public DbSet<Context> Contexts { get; set; }
public DbSet<Benchmark> Benchmarks { get; set; }
public DbSet<MachineType> MachineTypes { get; set; }
}
尝试与一些教程修复它 - 没有胜利...
问候, 马克
=====编辑=====
取出后[ForeignKey]标志我无法连接到我的SQL Server(错误26)。我没有设置数据库作为连接字符串,所以EF6需要创建一个localdb ..?
为什么多个'[ForeignKey(“BenchmarkId”)]'在不同的导航属性上?你想达到什么目的?你认为'[ForeignKey]'属性是为了什么? – haim770 2015-03-31 11:35:26
我需要4个基准测试集。有更好的方法吗? – Marc 2015-03-31 11:37:34
尝试首先删除所有'[ForeignKey]'属性。看看你有什么,然后重新描述你的问题。 – haim770 2015-03-31 11:39:46