我的解决方案有以下项目:
我从涉及用户记录的CRUD操作的逻辑开始,所以我已经编码了以下内容:
数据库上下文
namespace Logan.Web.DBContext
{
public class UserDBContext : LoganDBBaseObject<User>
{
private static WebDBContext db = new WebDBContext();
public UserDBContext()
: base()
{
Property(p => p.Username)
.HasColumnName("sUsername")
.HasMaxLength(20)
.IsRequired();
Property(p => p.EmailAddress)
.HasColumnName("sEmailAddress")
.HasMaxLength(200)
.IsRequired();
Property(p => p.Password)
.HasColumnName("sPassword")
.HasMaxLength(255)
.IsRequired();
Property(p => p.Biography)
.HasColumnName("sBiography")
.HasColumnType("text");
HasRequired(r => r.Role)
.WithMany(m => m.Users)
.Map(x => x.MapKey("fkRoleID"))
.WillCascadeOnDelete(false);
ToTable("Users");
}
}
}
课程定义
namespace Logan.Web.Objects
{
public class User : LoganBaseObject<User>
{
public string Username { get; set; }
public string EmailAddress { get; set; }
public string Password { get; set; }
public string Biography { get; set; }
public virtual Role Role { get; set; }
public virtual ICollection<Article> Articles { get; set; }
public User()
{
Username = String.Empty;
EmailAddress = String.Empty;
Password = String.Empty;
Biography = String.Empty;
Articles = new List<Article>();
}
}
}
CRUD功能
namespace Logan.Web.Data
{
public class WebUser
{
WebDBContext db = new WebDBContext();
public List<User> GetUsers()
{
return db.Users.Include(x => x.Role).ToList();
}
}
我在尝试将此代码绑定到MVC时遇到了麻烦。我知道我可能会在模型中做到这一点,但是我不知道这是什么告诉View什么以及如何告诉数据库当我想操纵数据时View所说的内容。
我到目前为止所做的就是:
// controller
public ActionResult Index()
{
UserModel u = new UserModel();
var users = u.GetUsers();
return View(users);
}
// model
public List<User> GetUsers()
{
WebUser u = new WebUser();
return u.GetUsers();
}
如何使用此结构创建写入/更新/删除功能或通过主键获取记录?
提前致谢!
答案 0 :(得分:0)
您需要更改WebUser类以包含这些操作的方法。
你需要:
public User GetUser(string userName)
public User CreateUser(User user)
public User UpdateUser(User user)
public bool DeleteUser(string userName)
尽管如此,您可能会在命名类User
时遇到问题,因为它是由MVC框架保留的。