我是.net/c#noob(长期java/servlet程序员)
我继承了一个mvc 3项目并且已经开展了大约2个月的工作.刚刚第一次打开packages.config并查看其中的jquery内容:
<package id="jQuery" version="1.5.1" />
<package id="jQuery.vsdoc" version="1.5.1" />
<package id="jQuery.Validation" version="1.8.0" />
<package id="jQuery.UI.Combined" version="1.8.11" />
Run Code Online (Sandbox Code Playgroud)
我的项目从未使用过NuGet.我知道这个文件是由NuGet使用的.
如果我只是编辑这个文件并从中删除行,会不会有任何不良的副作用.
我必须向我的C#.NET应用程序添加一些"查找"查询.基本上,会有许多表,它们都具有相同的模式,但包含不同的值.
我面临着反复编写相同的代码(应该是一个OO方式来做到这一点......)
[编辑 - 以下内容经过修改以显示更完整的信息]无论如何,我想做的是:
public List<GenericLookupE> GetLookupItems( string what )
{
// create db thing
if ( "regions" == what ) return FetchLookup( db.lkRegions.AsQueryable() );
if ( "partners" == what ) return FetchLookup( db.lkPartners.AsQueryable() );
if ( "funders" == what ) return FetchLookup( db.lkFunders.AsQueryable() );
return null; // or something more intelligent than that =)
}
private List<GenericLookupE> FetchLookup<T>( IQueryable<T> lookup )
{
return lookup.OrderBy( p => p.Sequence ).Select
( p => new GenericLookupE()
{
ID = p.ID
,Label …Run Code Online (Sandbox Code Playgroud) 我有一个需要在列表中显示数据“页面”的应用程序。基本想法是相当普遍的。显示屏显示项目列表,显示屏底部是一些控件,可让您转到数据的下一个“页面”。
一切都很好。我有这个工作。
以下是我用来支持“下一个”行为的视图中的SQL。
CREATE VIEW CampaignParticipants AS
SELECT row_number() OVER (ORDER BY TPT.LastName, TPT.FirstName, TPT.DoB) AS RowNumber
,CGP.*
,TPT.*
FROM tblCampaignGEDPush CGP
JOIN tblParticipants TPT
ON CGP.PartID = TPT.PartID
Run Code Online (Sandbox Code Playgroud)
这是我使用VIEW的方式
SELECT *
FROM CampaignParticipants
WHERE RowNumber >= 0
AND RowNumber <= 100
Run Code Online (Sandbox Code Playgroud)
这模拟了从VIEW抓取100个结果的“第一页”。通过每组结果的页面只是桃色。
很棒。但是:
正如一些处理过此问题的人可能知道的那样,这是有缺陷的。如果我想继续搜索TPT.LastName like 'R%'并获得第一组结果,那我就注定了。
我将要开始查看,在处RowNumber = 0停止RowNumber = 100,但“ R”结果可能会超出该范围。结果:列表返回为空。
而且它变得更加棘手:用户希望能够“过滤” LastName,FirstName,DoB,Location,Phone,Zip等任何内容。
**编辑:我真的不能将过滤器放在“内部”查询中,因为它在视图中,并且过滤器可以任意更改
任何人有任何想法如何得到这个结果集有一个row_number()对过滤的结果集?
我使用简单的.net身份验证将用户登录到.net
if ( Membership.ValidateUser( user, passwd ) )
Run Code Online (Sandbox Code Playgroud)
工作良好.紧接着,我尝试获取用户名:
Membership.GetUser().UserName
Run Code Online (Sandbox Code Playgroud)
有时这会返回一个无效的对象.有时不.我似乎无法检测到哪种模式.
例如,用户使用系统中的有效角色登录为"root"/"password".ValidateUser()调用成功,但Membership.GetUser().UserName返回无效对象.2秒后,再次执行相同的操作,验证和GetUser()都成功.
有任何想法吗?
..编辑1 ..这是我如何使用用户名:
Roles.GetRolesForUser( Membership.GetUser().UserName );
Run Code Online (Sandbox Code Playgroud)
当我交换System.Environment.UserName时,角色列表返回空.
如果我保持原样并且使用'true'作为我的第二个参数设置auth cookie,它可以正常工作.
FormsAuthentication.SetAuthCookie( user, true );
Run Code Online (Sandbox Code Playgroud)
如果我使用HttpContext.Current.User.Identity.Name,则角色列表可以将auth cookie设置为true或false.
现在,我理解有关性能的问题.这对我很重要.但我还需要确保应用程序正常运行.