怎么不允许这个?
public void addInsertedInformationToDb() {
using(DbClassesDataContext myDb = new DbClassesDataContext(dbPath)){
myDb.PatientInfos.InsertOnSubmit(insertPersonalInformation);
}
}
我的insertPersonalInformation
private PatientInfo insertPersonalInformation()
{
DbClassesDataContext myDb = new DbClassesDataContext(dbPath);
PatientInfo patientInfo = new PatientInfo();
patientInfo.Phy_ID = physcianID;
patientInfo.Pat_First_Name = txtFirstName.Text;
patientInfo.Pat_Middle_Name = txtMiddleName.Text;
patientInfo.Pat_Last_Name = txtLastName.Text;
patientInfo.Pat_Gender = cmbGender.Text;
patientInfo.Pat_Marital_Status = cmbMaritalStatus.Text;
patientInfo.Pat_Date_Of_Birth = dtpDOB.Value;
patientInfo.Pat_Home_Add = txtHomeAdd.Text;
patientInfo.Pat_Home_Num = txtPhone.Text;
patientInfo.Pat_Work_Add = txtWorkAdd.Text;
patientInfo.Pat_Work_Num = txtWorkPhone.Text;
patientInfo.Pat_Prim_Physician = txtPrimPhysician.Text;
patientInfo.Pat_Ref_Physician = txtRefePhysician.Text;
return patientInfo;
}
我一直在犯这些错误
错误1'System.Data.Linq.Table.InsertOnSubmit(PatientAdministration.PatientInfo)'的最佳重载方法匹配有一些无效的参数C:\ Users \ John \ documents \ visual studio 2010 \ Projects \ PatientAdministration \ PatientAdministration \ Pat_Demog.cs 101 17患者管理
错误2参数1:无法从'方法组'转换为'PatientAdministration.PatientInfo'C:\ Users \ John \ documents \ visual studio 2010 \ Projects \ PatientAdministration \ PatientAdministration \ Pat_Demog.cs 101 50 PatientAdministration
对此有什么解决方法?
答案 0 :(得分:1)
因为在InsertOnSubmit中你可以使用实体对象或不调用任意方法的有效表达式,linq2entity无法将你的方法转换为所需的表达式,你可以按照下面的方法来解决你的问题:
using(DbClassesDataContext myDb = new DbClassesDataContext(dbPath)){
var patientInfo = insertPersonalInformation();
myDb.PatientInfos.InsertOnSubmit(patientInfo);
}
要执行SQL Insert,只需将对象添加到您拥有的对象模型中 创建,并在DataContext上调用SubmitChanges。
最后不要忘记致电myDb.SubmitChanges()
。
答案 1 :(得分:0)
你的代码工作得很好,只需调用这样的方法:
myDb.PatientInfos.InsertOnSubmit(insertPersonalInformation());
myDb.SubmitChanges()
您忘记添加括号。