정보를 검색하기 위해 저장소를 가져 오는 데 몇 가지 문제가 있습니다. 어떤 생각이라도 감사 할 것입니다.C# Entity Framework 핵심 및 저장소
저장소 :
public class CustomerRepository : ICustomerRepository
{
private masterContext context;
public CustomerRepository(masterContext context)
{
this.context = context;
}
public IEnumerable<Customer> GetCustomers()
{
return context.Customer.ToList();
}
public Customer GetCustomerById(int customerId)
{
var result = (from c in context.Customer where c.CustomerId == customerId select c).FirstOrDefault();
return result;
}
public void Save()
{
context.SaveChanges();
}
컨트롤러 :
public class CustomerController : Controller
{
private readonly ICustomerRepository _repository = null;
public ActionResult Index()
{
var model = (List<Customer>)_repository.GetCustomers();
return View(model);
}
public ActionResult New()
{
return View();
}
}
MasterContext 내가 EFC하게했다 :
public partial class masterContext : DbContext
{
public masterContext(DbContextOptions<masterContext> options)
: base(options)
{ }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Customer>(entity =>
{
entity.Property(e => e.CustomerName).IsRequired();
});
}
public virtual DbSet<Customer> Customer { get; set; }
public virtual DbSet<Order> Order { get; set; }
}
아마도이 문제는 해결되지 않지만 ienumerable을 반환 할 때 tolist를 사용하는 이유는 무엇입니까? 그것은 자원 낭비입니다.) –
그리고 나는 당신이 방법을 사용할 때 그것을 던지기보다 당신이 깨달았습니다. 그건 트리플 캐스팅이다. –
아 맞다. CustomerRepository의 인스턴스를 생성 할 필요가 없다. Depenency injection을 사용합니까? –