我想在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在业务层中有查询不是很好的主意 - 您应该将它们保留在数据访问层 –