我想在3層的方法來進行編程。所以我創建了一個價值對象層更新使用LINQ記錄和我創建了一個用戶對象的值是這樣的:通過傳遞一個值對象
public class VOuser:MainClass
{
public string _username;
public string _password;
public string _email;
public string _mobile;
public DateTime _dateOfRegister;
public string _name;
public string _family;
public VOuser()
{
_BUuser=new BUUser();
}
public EnumUserPermission Permission
{
get { return _permission; }
set { _permission = value; }
}
public string Username
{
get { return _username; }
set { if(value=="")message("لطفا نام کاربری را وارد کنید"); _username = value; }
}
public string Password
{
get { return _password; }
set { if (value == "")message("لطفا کلمه عبور را وارد کنید"); _password = value; }
}
public string Email
{
get { return _email; }
set { if (value == "")message("لطفا رایانامه را وارد کنید"); _email = value; }
}
public string Mobile
{
get { return _mobile; }
set { if (value == "")message("لطفا شماره موبایل را وارد کنید"); _mobile = value; }
}
public DateTime DateOfRegister
{
get { return _dateOfRegister; }
set { _dateOfRegister = DateTimeNow(); }
}
public string Name
{
get { return _name; }
set { if (value == "")message("لطفا نام را وارد کنید"); _name = value; }
}
public string Family
{
get { return _family; }
set { if (value == "")message("لطفا نام خانوادگی را وارد کنید"); _family = value; }
}
public void edit()
{
_BUuser._VOUser=this;
_BuUser.Edituser();
}
}
所以和在另一個業務層中,我想創建一個可以在數據庫中編輯我的記錄的方法。我通過用戶價值對象業務層和我的業務層通過下面的函數執行此操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using novitiate.DataAccesslayer;
using novitiate.ValueObjectLayer;
namespace novitiate.BusinessLayer
{
public class BUUser:BuMainClass
{
protected DataAccesslayer.tblUser _userDA;
public ValueObjectLayer.VOuser _VOUser;
public BUUser()
{
_userDA=new tblUser();
}
public bool AddUser()
{
_userDA.userName = _VOUser.Username;
_userDA.password = _VOUser.Password;
_userDA.email = _VOUser.Email;
_userDA.mobile = _VOUser.Mobile;
_userDA.dateOfRegister = _VOUser.DateOfRegister;
_userDA.name = _VOUser.Name;
_userDA.family = _VOUser.Family;
dbconnect.tblUsers.InsertOnSubmit(_userDA);
dbconnect.SubmitChanges();
return true;
}
public bool Edituser()
{
_userDA.userName = _VOUser.Username;
_userDA.password = _VOUser.Password;
_userDA.email = _VOUser.Email;
_userDA.mobile = _VOUser.Mobile;
_userDA.dateOfRegister = _VOUser.DateOfRegister;
_userDA.name = _VOUser.Name;
_userDA.family = _VOUser.Family;
dbconnect.SubmitChanges();
return true;
}
}
因此,我調用用戶對象層的編輯功能。
我的問題是在編輯功能。你認爲我使用的模型正在工作,或者我應該使用一些像這樣的事情:
public bool Edituser()
{
var q = from i in dbconnect.tblUsers where i.userName == _VOUser.Username select i;
q.First().password = _VOUser.Password;
q.First().email = _VOUser.Email;
q.First().mobile = _VOUser.Mobile;
q.First().dateOfRegister = _VOUser.DateOfRegister;
q.First().name = _VOUser.Name;
q.First().family = _VOUser.Family;
dbconnect.SubmitChanges();
return true;
}
我想編輯我的記錄沒有選擇查詢。我只想將我的NEW User值對象傳遞給我的Edit函數,而我的函數只是調用submit.change(); 而且每件事情都可以;
是的簽名,這是我的錯,但我只需要我的用戶值對象映射到我的tbluser – SSC
和我的問題是,我可以使用*** VAR用戶= dbconnect.tblUsers.SingleOrDefault (u => u.userName == _VOUser.Username); ***此業務層中的查詢 – SSC
@SSC在業務層中有查詢不是很好的主意 - 您應該將它們保留在數據訪問層 –