如何使用LINQ将C#类对象添加到实体表中
如何使用LINQ将class对象添加到Enity表中?prescriber对象是从FullMasters实体构建的,但我需要获取该对象并将其保存到EPCS_prescriber表中。我正在使用linq如何使用LINQ将C#类对象添加到实体表中,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,如何使用LINQ将class对象添加到Enity表中?prescriber对象是从FullMasters实体构建的,但我需要获取该对象并将其保存到EPCS_prescriber表中。我正在使用linq public class UserRepository : IUserRepository { SourceofTruthEntities context = null; ePrescribeEntities epcs = null; public UserReposit
public class UserRepository : IUserRepository
{
SourceofTruthEntities context = null;
ePrescribeEntities epcs = null;
public UserRepository()
{
context = new SourceofTruthEntities();
}
public List<FullMaster> SelectByNPI(string id)
{
var data = context.FullMasters.Where(x => x.NPI == id).ToList();
return data;
}
public List<FullMaster> SelectByName(string first, string last)
{
var data = context.FullMasters.Where(x => x.FirstName == first && x.LastName == last).ToList();
return data;
}
public void SavePrescriber(string id)
{
var data = context.FullMasters.Where(x => x.NPI == id).FirstOrDefault();
Prescriber p = new Prescriber
{
First = data.FirstName,
Last = data.LastName,
DEA = data.DEA,
License = data.LIC,
Life = data.Life_Hosp,
NPI = data.NPI
};
epcs.EPCS_Prescriber.Add(p);
epcs.SaveChanges();
}
}
公共类用户存储库:IUserRepository
{
SourceofTruthEntities上下文=null;
EPDescription实体epcs=null;
公共用户存储库()
{
context=新的sourceoftruth实体();
}
公共列表SelectByNPI(字符串id)
{
var data=context.FullMasters.Where(x=>x.NPI==id.ToList();
返回数据;
}
公共列表SelectByName(先字符串,后字符串)
{
var data=context.FullMasters.Where(x=>x.FirstName==first&&x.LastName==last.ToList();
返回数据;
}
公共无效存储指定程序(字符串id)
{
var data=context.FullMasters.Where(x=>x.NPI==id).FirstOrDefault();
处方医生p=新处方医生
{
First=data.FirstName,
Last=data.LastName,
DEA=data.DEA,
License=data.LIC,
寿命=数据寿命,
NPI=data.NPI
};
epcs。epcs_处方药。添加(p);
SaveChanges();
}
}
假设epcs
是数据库上下文,那么您应该使用epcs.epcs\u Prescriber.Insert(p)
而不是AddObject(p)
,除非这不是一个数据库,您肯定只需要一个上下文吗?这应该适合您:
public void SavePrescriber(string id)
{
var data = context.FullMasters.Where(x => x.NPI == id).FirstOrDefault();
Prescriber p = new Prescriber
{
First = data.FirstName,
Last = data.LastName,
DEA = data.DEA,
License = data.LIC,
Life = data.Life_Hosp,
NPI = data.NPI
};
context.EPCS_Prescribers.Add(p);
context.SaveChanges();
}
确保您的…DbContext类包含以下内容:
...
public System.Data.Entity.DbSet<YourNamespace.Models.Prescriber> EPCS_Prescribers { get; set; }
...
。。。
public System.Data.Entity.DbSet EPCS_规定者{get;set;}
...
如有必要,请检查类/实体的名称。两个上下文都需要初始化:
public UserRepository()
{
context = new SourceofTruthEntities();
ePrescribeEntities epcs = new ePrescribeEntities();
}
还要注意,
数据
可能为空…epcs.epcs\u Prescriber.AddObject(p);epcs。epcs_处方药。添加(p);SaveChanges();对于Add方法,我必须引用哪个程序集?您的问题到底是什么?不编译,运行时异常,不保存?请添加您得到的任何错误。“System.Data.Objects.ObjectSet”不包含“Insert”的定义,并且找不到接受“System.Data.Objects.ObjectSet”类型的第一个参数的扩展方法“Insert”(是否缺少using指令或程序集引用?)是的,我看到两个上下文都已初始化,但我正在获取一个类对象并试图将其保存到一个表实体,我收到了这个错误。是否有方法强制转换?错误5“System.Data.Objects.ObjectSet.AddObject(ePrescribe.Domain.Entities.Data.EPCS_Prescriber)”的最佳重载方法匹配具有一些无效参数。您只能将ePrescribe.Domain.Entities.Data.EPCS_Prescriber添加到您的EPCS_Prescriber实体中。您需要用数据填充EPCS_Prescriber类,并将其保存,而不是保存您自己的Prescriber类。如果可能的话,请使用p=new Prescriber do EPCS_Prescriber p=new EPCS_Prescriber。并确保设置System.data.Objects.ObjectSetI建议调用wait EPCS.SaveChangesSync()而不是EPCS.SaveChanges();
public void SavePrescriber(string id)
{
var data = context.FullMasters.Where(x => x.NPI == id).FirstOrDefault();
EPCS_Prescriber e = new EPCS_Prescriber();
e.FirstName = data.FirstName;
e.LastName = data.LastName;
e.DeaNo = data.DEA;
e.License = data.LIC;
e.LifeNo = data.Life_Hosp;
e.NpiNo = data.NPI;
epcs.EPCS_Prescriber.AddObject(e);
epcs.SaveChanges();
}