假设您有两个表,"Users"和"UserRoles".以下是两个表的结构(表 - 列):
用户 - UserID(int)
UserRoles - UserID(int),角色(字符串)
我想要的是我的域中的"用户"类具有IList角色.如何构建我的Fluent NHibernate映射来实现这一目标?
我知道购物车项目等信息的一般共识是将它们存储在会话中.但是属于用户的对象可以被其他用户更改呢?比如说,像一个类似eBay的网站.如果您在会话中存储用户的"项目",其中包含当前的出价金额,而另一个用户进入并对该项目进行出价,则您必须同时更新数据库中的项目以及会话中的项目,不是吗?
在这种情况下,只有当其他用户采取的任何操作影响一个人的会话值或将所有内容存储在数据库中并且每次都检索它时,才会存储会话和刷新的唯一选项(例如,如果您显示出价,可能会变得昂贵在每页的侧面板上).
目前,当我想设置像maxlength和autocomplete这样的html属性时,我必须使用以下语法:
<%= Html.TextBox("username", ViewData["username"], new { maxlength = 20, autocomplete = "off" }) %>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,而无需明确设置ViewData ["用户名"]部分?换句话说,我想依赖于辅助方法的自动加载例程,而不是必须明确告诉它从ViewData加载哪个字段.
我定义了以下命名的SQL查询:
<sql-query name="ItemSearch">
<return class="ItemSearchResult">
<return-property name="Item" column="ItemId" />
<return-property name="Distance" column="Distance" />
</return>
SELECT
Items.*,
dbo.DistanceBetween(Latitude, Longitude, :lat, :long) AS Distance
FROM Items
WHERE Contains(Name, :keywords)
ORDER BY Distance ASC
</sql-query>
Run Code Online (Sandbox Code Playgroud)
每当我尝试运行我的应用程序时,我都会收到一般错误"命名查询中的错误:{ItemSearch}".这里有什么明显的错误吗?
ItemSearchResult类是一个非常简单的包装类,如下所示:
public class ItemSearchResult
{
public Item Item {get; set;}
public double Distance {get; set;}
}
Run Code Online (Sandbox Code Playgroud) 我有一个Active Record模型,它包含两个属性:start_date和end_date.我该如何验证以下内容:
假设您有一个只能由该个人资料的所有者访问的个人资料页面.此个人资料页面位于:
用户/资料/ {用户ID}
现在,我想,为了防止其他用户访问此页面,您可以构建UserController类的Profile函数来检查当前会话的标识:
HttpContext.Current.User.Identity.Name
如果id与url中的id匹配,则继续.否则,您将重定向到某种错误页面.
我的问题是你如何对这样的东西进行单元测试?我猜你需要使用某种依赖注入而不是控制器中的HttpContext来进行检查,但我不清楚最好的方法是什么.任何意见将是有益的.
有没有人在dll上有一个很好的资源以及如何在Visual Studio中使用/生成它们?我特别朦胧的一些问题是:
欢迎任何其他提示.
在Stack Overflow上,配置文件页面列出了"上次看到"属性.这似乎没有在每个页面视图上更新(出于性能原因,显然).您将如何在流量大的网络应用中实现它?你会仅在某些页面上更新吗?或者在上次记录用户上次访问时缓存并在更新数据库之前等待一段特定时间?还是完全不同的东西?
只是想知道是否有人有使用Entity Framework 4的POCO支持的经验,以及它与NHibernate相比如何站起来.如果它们是相同的,我会非常有兴趣将Entity Framework 4作为我选择的ORM,只因为它会:
换句话说,EF4有什么重大缺点吗?
它是否支持NHibernate支持的所有基本功能(延迟加载,急切加载,一级缓存等),还是它仍然是粗糙的边缘?设置映射的语法是否像NHibernate和/或Fluent NHibernate一样简单?
编辑:请不要提出不信任的投票.那是很久以前的事情,并处理了EF1的一些严重缺点,这些缺点似乎不再适用于EF4.
nhibernate ×3
asp.net ×2
asp.net-mvc ×2
.net ×1
activerecord ×1
dll ×1
orm ×1
scalability ×1
session ×1
tdd ×1
timeout ×1
validation ×1