- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在关注 apress 的 asp.net mvc 5 书,但我在某一时刻遇到了这个错误:
"SportsStore.Domain.Concrete.EFProductRepository' does not implementinterface member'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; }
}
}
}
在 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; }
}
}
为什么我在 EFProductRepository.cs 类中收到错误?
最佳答案
因为您没有为属性实现 setter。查看接口(interface)的定义:
IEnumerable<Product> Products { get; set; }
然后看看你的实现:
public IEnumerable<Product> Products
{
get { return context.Products; }
}
您需要实现 set
在属性中,或删除 set
从接口(interface)定义。考虑到属性的实现,我猜后者更合适。
如果有帮助,因为看起来您正在为 Entity Framework 对象构建一个存储库,下面是我的一个通常的样子:
public interface ProductRepository
{
IQueryable<Product> Products { get; }
void Add(Product model);
void Remove(Product model);
}
和实现:
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);
}
}
通常这包含在一个工作对象单元中,它扩展了 DbContext
并处理将更改提交到其存储库。 (这也是将 DbSet<>
传递给存储库构造函数的原因。)我实际上是 just blogged。关于今天的设置。
关于c# - 不在 sportsstore asp.net mvc 5 中实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22155523/
我真的是 TDD 的新手,实际上,我正在尝试遵循我书中的示例( SportsStore -- Pro ASP.NET MVC Framework/Steve Sanderson/APRESS )。我在
所以我一直在关注 Steven Sanderson 的名为 Pro ASP.NET MVC Framework 的书,但我遇到了一个异常: No parameterless constructor d
我正在关注 apress 的 asp.net mvc 5 书,但我在某一时刻遇到了这个错误: "SportsStore.Domain.Concrete.EFProductRepository' doe
(Apress PRO:ASP.NET MVC 3 Framework - 作者 Adam Freeman 和 Steven Sanderson - 第三版) (提醒一下:我是 ASP.NET 的新手
G'day All,有没有人购买了 Apress Pro Asp.net MVC Framework 3 的 ALPHA 并创建了 SportsStore?我不能终生编辑产品并成功更新数据库?没有错误
我是一名优秀的程序员,十分优秀!