小编hor*_*ace的帖子

手动编辑packages.config

我是.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使用的.

如果我只是编辑这个文件并从中删除行,会不会有任何不良的副作用.

.net packages

8
推荐指数
1
解决办法
3005
查看次数

LINQ:具有IQueryable的泛型

我必须向我的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)

.net linq generics

5
推荐指数
1
解决办法
369
查看次数

SQL Server行号和过滤结果

我有一个需要在列表中显示数据“页面”的应用程序。基本想法是相当普遍的。显示屏显示项目列表,显示屏底部是一些控件,可让您转到数据的下一个“页面”。

一切都很好。我有这个工作。

以下是我用来支持“下一个”行为的视图中的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()过滤的结果集?

sql-server row-number

4
推荐指数
1
解决办法
1691
查看次数

.Membership.GetUser()用户名; (.net 4,mvc 3)

我使用简单的.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.

现在,我理解有关性能的问题.这对我很重要.但我还需要确保应用程序正常运行.

.net authentication

2
推荐指数
1
解决办法
4845
查看次数