首页 > 解决方案 > 没有从 X 到 Y 的隐式引用转换

问题描述

我在这个类声明上有一个错误:

public class MenuItemEstablishmentsRepository : VeganItemEstablishmentsRepository<MenuItem, Restaurant, MenuItemTag>
{

错误:

类型“Vepo.Domain.MenuItem”不能用作泛型类型或方法“VeganItemEstablishmentsRepository<TVeganItem, TEstablishment, TVeganItemTag>”中的类型参数“TVeganItem”。没有从 'Vepo.Domain.MenuItem' 到 'Vepo.Domain.VeganItem<Vepo.Common.Enums.MenuItemTag, Vepo.Domain.VeganItemEstablishment<Vepo.Domain.MenuItem, Vepo.Domain.Restaurant>>' 的隐式引用转换. [Vepo.数据]

MenuItemVeganItem

[ElasticsearchType(RelationName = "menuitem", IdProperty = "Id")]
public class MenuItem : VeganItem<MenuItemTag, MenuItemEstablishment>
{
}


using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Nest;
using Newtonsoft.Json;

namespace Vepo.Domain
{
    [Serializable]
    public abstract class VeganItem<TVeganItemTag, TVeganItemEstablishment> : DomainEntity<int>
    {
        [Required]
        public string Name { get; set; }
        [Required]
        public string CompanyName { get; set; }
        [Required]
        public string Description { get; set; }
        public string Image { get; set; }
        [Required]
        public int IsNotVeganCount { get; set; } = 0;
        [Required]
        public int IsVeganCount { get; set; } = 0;
        [Required]
        public int RatingsCount { get; set; } = 0;
        [Required]
        public int Rating { get; set; }
        [Required]
        public List<TVeganItemTag> Tags { get; set; }

        [PropertyName("veganItemEstablishments", Ignore = true)]
        public virtual ICollection<TVeganItemEstablishment> VeganItemEstablishments { get; set; }
    }
}

为什么不能转换MenuItemVeganItemwhenMenuItem继承自VeganItem?解决此错误的方法是什么?

超级仓库:

public abstract class VeganItemEstablishmentsRepository
    <TVeganItem, TEstablishment, TVeganItemTag> : 
    Repository<VeganItemEstablishment<TVeganItem, TEstablishment>, int> 
    where TVeganItem : VeganItem<TVeganItemTag, VeganItemEstablishment<TVeganItem, TEstablishment>>
    where TEstablishment : Establishment<VeganItemEstablishment<TVeganItem, TEstablishment>>

标签: c#asp.netgenericsentity-framework-core.net-5

解决方案


推荐阅读