如何将映射器用于 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。