Laz*_*ale 1 c# asp.net asp.net-mvc interface asp.net-mvc-5
我正在通过apress关注asp.net mvc 5的书,我遇到了这个错误:
"SportsStore.Domain.Concrete.EFProductRepository'未实现接口成员'SportsStore.Domain.Abstract.IProductRepository.Products.set"
这就是我在EFProductRepository中所拥有的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SportsStore.Domain.Abstract;
using SportsStore.Domain.Entities;
namespace SportsStore.Domain.Concrete
{
public class EFProductRepository : IProductRepository
{
public EFDbContext context = new EFDbContext();
public IEnumerable<Product> Products
{
get { return context.Products; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
在IProductRepository我有:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SportsStore.Domain.Entities;
namespace SportsStore.Domain.Abstract
{
public interface IProductRepository
{
IEnumerable<Product> Products { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
知道为什么我在EFProductRepository.cs类中收到错误吗?提前感谢Laziale的每一个建议
因为您没有为该属性实现setter.看一下界面的定义:
IEnumerable<Product> Products { get; set; }
Run Code Online (Sandbox Code Playgroud)
看看你的实现:
public IEnumerable<Product> Products
{
get { return context.Products; }
}
Run Code Online (Sandbox Code Playgroud)
您需要set在属性中实现a ,或set从接口定义中删除.鉴于该物业的实施,我猜测后者更合适.
如果它有帮助,因为看起来你正在构建Entity Framework对象的存储库,这是我的一般看起来像:
public interface ProductRepository
{
IQueryable<Product> Products { get; }
void Add(Product model);
void Remove(Product model);
}
Run Code Online (Sandbox Code Playgroud)
和实施:
public class ProductRepositoryImplementation : ProductRepository
{
private DbSet<Product> _products;
public IQueryable<Product> Products
{
get { return _products; }
}
public ProductRepositoryImplementation(DbSet<Product> products)
{
_products = products;
}
public void Add(Product model)
{
_products.Add(model);
}
public void Remove(Product model)
{
_products.Remove(model);
}
}
Run Code Online (Sandbox Code Playgroud)
通常,它位于工作对象单元内,工作对象扩展DbContext并处理将更改提交到其存储库.(这也是传递DbSet<>给存储库的构造函数的东西.)我今天刚刚在博客上写了这个设置.
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |