如何将映射器用于 ICollections<Float>
How to use mappers for ICollections<Float>
我想知道如何使用映射器 class 将集合存储到数据库中。
类型 'System.Collections.Generic.ICollection' 必须是不可为 null 的值类型,以便将其用作泛型类型或方法 'System.Data.Entity.ModelConfiguration.Configuration.StructuralTypeConfiguration.Property(System.Linq.Expressions.Expression>)'
中的参数 'T'
我的映射器Class
public LocatieMapper()
{
//Table
this.ToTable("Locatie");
//Properties => Columns
this.Property(p => p.Naam);
this.Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.Property(p => p.GemiddeldeMaandTemperaturen).IsRequired();
//Primary Key
this.HasKey(k => k.Id);
//Relationships
}
}
}
这是我的位置Class
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Klimatogrammen.Models.Domain
{
public class Locatie
{
[Key]
public int Id { get; set; }
private String naam;
private ICollection<float> gemiddeldeMaandTemperaturen;//want to map this
private ICollection<float> totaleMaandNeerslag;//and this
public Locatie(String naam, ICollection<float> gemiddeldeMaandTemperaturen, ICollection<float> totaleMaandNeerslag)
{
this.Naam = naam;
// test
this.GemiddeldeMaandTemperaturen = gemiddeldeMaandTemperaturen;
this.TotaleMaandNeerslag = totaleMaandNeerslag;
}
// other code
添加了额外信息的构造函数
调用构造函数的例子
temperatuur = new List<float> { 3.46F, 3.8F, 6.65F, 9.25F, 12.95F, 15.35F, 17.75F, 17.6F, 14.8F, 11.2F, 7F, 4.05F };
neerslag = new List<float> { 60.5F, 63F, 56.3F, 42.4F, 59.7F, 60F, 77.3F, 88.4F, 73.7F, 68.3F, 80.9F, 82.5F };
Locatie gent = new Locatie("Gent", temperatuur, neerslag);
您的问题是您使用的是 StructuralTypeConfiguration,因此 属性 方法需要一个描述 returns 值类型的函数的表达式。 ICollection<T>
不是值类型(事实上,所有接口类型都是引用类型)。
尝试改用 ConventionTypeConfiguration。
我想知道如何使用映射器 class 将集合存储到数据库中。
类型 'System.Collections.Generic.ICollection' 必须是不可为 null 的值类型,以便将其用作泛型类型或方法 'System.Data.Entity.ModelConfiguration.Configuration.StructuralTypeConfiguration.Property(System.Linq.Expressions.Expression>)'
我的映射器Class
public LocatieMapper()
{
//Table
this.ToTable("Locatie");
//Properties => Columns
this.Property(p => p.Naam);
this.Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.Property(p => p.GemiddeldeMaandTemperaturen).IsRequired();
//Primary Key
this.HasKey(k => k.Id);
//Relationships
}
}
}
这是我的位置Class
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Klimatogrammen.Models.Domain
{
public class Locatie
{
[Key]
public int Id { get; set; }
private String naam;
private ICollection<float> gemiddeldeMaandTemperaturen;//want to map this
private ICollection<float> totaleMaandNeerslag;//and this
public Locatie(String naam, ICollection<float> gemiddeldeMaandTemperaturen, ICollection<float> totaleMaandNeerslag)
{
this.Naam = naam;
// test
this.GemiddeldeMaandTemperaturen = gemiddeldeMaandTemperaturen;
this.TotaleMaandNeerslag = totaleMaandNeerslag;
}
// other code
添加了额外信息的构造函数
调用构造函数的例子
temperatuur = new List<float> { 3.46F, 3.8F, 6.65F, 9.25F, 12.95F, 15.35F, 17.75F, 17.6F, 14.8F, 11.2F, 7F, 4.05F };
neerslag = new List<float> { 60.5F, 63F, 56.3F, 42.4F, 59.7F, 60F, 77.3F, 88.4F, 73.7F, 68.3F, 80.9F, 82.5F };
Locatie gent = new Locatie("Gent", temperatuur, neerslag);
您的问题是您使用的是 StructuralTypeConfiguration,因此 属性 方法需要一个描述 returns 值类型的函数的表达式。 ICollection<T>
不是值类型(事实上,所有接口类型都是引用类型)。
尝试改用 ConventionTypeConfiguration。