2012-05-31 163 views
1

我想在我的迁移配置文件中种下一些数据。我创建了位置类EF代码优先4.3:迁移/种子

var location = new Location 
      { 
       Name = "Test", 
       Street = "Test", 
       City = "Test", 
       State = "Test", 
       ZipCode = "Test", 
       Country = "US", 
       PhoneNumber = "Test", 
       EmailAddress = null, 
       Website ="Test", 
       Latitude = Convert.ToDecimal(35.137592), 
       Longitude = Convert.ToDecimal(-85.124883) 
      }; 

而且种子它的一个新实例,我有

context.Locations.AddOrUpdate(
       t => 
       new 
        { 
         t.Name, 
         t.Street, 
         t.City, 
         t.State, 
         t.ZipCode, 
         t.Country, 
         t.PhoneNumber, 
         t.EmailAddress, 
         t.Website, 
         t.Latitude, 
         t.Longitude 
        }, location); 

经度和纬度是十进制?类型。

我越来越想运行此迁移时出现以下错误:

二元运算符等于没有为类型“System.Nullable`1 [System.Decimal]”和“System.Decimal”定义。

我该如何解决这个问题?

+0

明白了。我现在了解AddOrUpdate方法。我将其更改为context.Locations.AddOrUpdate(t => t.Name,location);所以它只检查名称列,它的工作。 – Mike

回答

2

改成了

context.Locations.AddOrUpdate(t => t.Name,location); 

,使其只对名称列检查(在这种情况下字符串)