错误 BFProj2.Models.ContextModel 不包含 'SaveChanges' 的定义我错过了什么?
Error BFProj2.Models.ContextModel does not contain a definition for 'SaveChanges' what am I missing?
我不断收到此错误,通常它与 using 语句有关,但我认为我可能搞砸了某些事情,或者我错过了 using 语句。现在我不知道那是什么。看到其他人有同样的问题,但找出要使用的 using 语句。尝试了每个 Entity Framework 语句,但似乎不需要其他语句。
'BFProj2.Models.ContextModel' 不包含 'SaveChanges' 的定义,并且找不到接受类型 'BFProj2.Models.ContextModel' 的第一个参数的扩展方法 'SaveChanges'(您是否缺少 using 指令或程序集引用?)
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
using BFProj2.DAL;
namespace BFProj2.DAL
{
[Table("DataPlacer")]
public partial class DataPlacer : IEntity
{
public int csvId { get; set; }
[Required]
public string csvcolumn { get; set; }
}
public class IEntity
{
public int Id;
}
}
存储库:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BFProj2.Models;
using System.Data.Entity;
using System.Data.Entity.Core.Objects;
namespace BFProj2.DAL
{
public class DCResultsRepository : IRepository<DataPlacer>
{
ContextModel _DataPlacerContext;
public DCResultsRepository()
{
_DataPlacerContext = new ContextModel();
}
public IEnumerable<DataPlacer> List
{
get
{
return _DataPlacerContext.DataPlacer;
}
}
public void Add(DataPlacer entity)
{
//TODO: Saknas usingsats som gör att SaveChanges inte fungerar.
_DataPlacerContext.DataPlacer.Add(entity);
_DataPlacerContext.SaveChanges();
}
public void Delete(DataPlacer entity)
{
_DataPlacerContext.DataPlacer.Remove(entity);
_DataPlacerContext.SaveChanges();
}
public void Update(DataPlacer entity)
{
_DataPlacerContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
_DataPlacerContext.SaveChanges();
}
public DataPlacer FindById(int Id)
{
var result = (from r in _DataPlacerContext.DataPlacer
where r.Id == Id
select r).FirstOrDefault();
return result;
}
}
IRepository:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity.Core.Objects;
namespace BFProj2.DAL
{
interface IRepository<T> where T:IEntity
{
IEnumerable<T> List { get; }
void Add(T entity);
void Delete(T entity);
void Update(T entity);
T FindById(int Id);
}
型号:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
namespace BFProj2.Models
{
public class ContextModel
{
//public object _DataPlacerContext { get; set; }
public List<DAL.DataPlacer> DataPlacer { get; set; }
}
}
您需要从 DbContext
继承,如下所示:-
public class ContextModel : DbContext
{
//public object _DataPlacerContext { get; set; }
public List<DAL.DataPlacer> DataPlacer { get; set; }
}
并确保您在项目中提供了 EntityFramework.dll 的引用
我不断收到此错误,通常它与 using 语句有关,但我认为我可能搞砸了某些事情,或者我错过了 using 语句。现在我不知道那是什么。看到其他人有同样的问题,但找出要使用的 using 语句。尝试了每个 Entity Framework 语句,但似乎不需要其他语句。
'BFProj2.Models.ContextModel' 不包含 'SaveChanges' 的定义,并且找不到接受类型 'BFProj2.Models.ContextModel' 的第一个参数的扩展方法 'SaveChanges'(您是否缺少 using 指令或程序集引用?)
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
using BFProj2.DAL;
namespace BFProj2.DAL
{
[Table("DataPlacer")]
public partial class DataPlacer : IEntity
{
public int csvId { get; set; }
[Required]
public string csvcolumn { get; set; }
}
public class IEntity
{
public int Id;
}
}
存储库:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BFProj2.Models;
using System.Data.Entity;
using System.Data.Entity.Core.Objects;
namespace BFProj2.DAL
{
public class DCResultsRepository : IRepository<DataPlacer>
{
ContextModel _DataPlacerContext;
public DCResultsRepository()
{
_DataPlacerContext = new ContextModel();
}
public IEnumerable<DataPlacer> List
{
get
{
return _DataPlacerContext.DataPlacer;
}
}
public void Add(DataPlacer entity)
{
//TODO: Saknas usingsats som gör att SaveChanges inte fungerar.
_DataPlacerContext.DataPlacer.Add(entity);
_DataPlacerContext.SaveChanges();
}
public void Delete(DataPlacer entity)
{
_DataPlacerContext.DataPlacer.Remove(entity);
_DataPlacerContext.SaveChanges();
}
public void Update(DataPlacer entity)
{
_DataPlacerContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
_DataPlacerContext.SaveChanges();
}
public DataPlacer FindById(int Id)
{
var result = (from r in _DataPlacerContext.DataPlacer
where r.Id == Id
select r).FirstOrDefault();
return result;
}
}
IRepository:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity.Core.Objects;
namespace BFProj2.DAL
{
interface IRepository<T> where T:IEntity
{
IEnumerable<T> List { get; }
void Add(T entity);
void Delete(T entity);
void Update(T entity);
T FindById(int Id);
}
型号:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
namespace BFProj2.Models
{
public class ContextModel
{
//public object _DataPlacerContext { get; set; }
public List<DAL.DataPlacer> DataPlacer { get; set; }
}
}
您需要从 DbContext
继承,如下所示:-
public class ContextModel : DbContext
{
//public object _DataPlacerContext { get; set; }
public List<DAL.DataPlacer> DataPlacer { get; set; }
}
并确保您在项目中提供了 EntityFramework.dll 的引用