我最近升级到了VS 2010,正在玩LINQ to Dataset.我有一个强大的类型化的Authorization数据集,它位于ASP.NET WebApplication的HttpCache中.
所以我想知道实际上检查用户是否有权做某事的最快方法.如果有人感兴趣的话,这是我的数据模型和其他一些信息.
我检查了3种方法:
这些是每个函数1000次调用的结果:
1.Iteration:
2.Iteration:
3.Iteration:
平均:
为什么Join-version比where-syntax快得多,这使得它无用尽管作为LINQ新手它似乎是最清晰的.或者我在查询中遗漏了什么?
这是LINQ查询,我跳过数据库:
地点:
Public Function hasAccessDS_Where(ByVal accessRule As String) As Boolean
Dim userID As Guid = DirectCast(Membership.GetUser.ProviderUserKey, Guid)
Dim query = From accRule In Authorization.dsAuth.aspnet_AccessRule, _
roleAccRule In Authorization.dsAuth.aspnet_RoleAccessRule, _
role In Authorization.dsAuth.aspnet_Roles, _
userRole In Authorization.dsAuth.aspnet_UsersInRoles _
Where accRule.idAccessRule = roleAccRule.fiAccessRule …Run Code Online (Sandbox Code Playgroud) 我需要从datetime的字符串以24小时格式显示时间.
..
var curr = DateTime.Now;
string s = ???;
Console.WriteLine(s);
..
Run Code Online (Sandbox Code Playgroud)
输出结果必须是:"16:38"谢谢.
Dictionary.Add方法和索引器之间有什么区别Dictionary[key] = value?
在Visual Studio 2010中,Step Into Property/Function(F11)无法按预期工作.
它不会涉及财产制定者或吸气者.
我将解决方案从转换Visual Studio 2005为2010,我想要进入的函数是一个单独的类库中的属性.
我怎样才能让它像我期望的那样工作?
我无法理解为什么使用参数执行构造函数Double[]?
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyConsoleApp
{
class Program
{
static void Main(string[] args)
{
D myD = new D(null);
Console.ReadLine();
}
}
public class D
{
public D(object o)
{
Console.WriteLine("Object");
}
public D(double[] array)
{
Console.WriteLine("Array");
}
public D(int i)
{
Console.WriteLine("Int");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为因为第一个构造函数采用引用类型的参数.带引号参数的第一个构造函数因为null是引用类型的默认值.
但我不明白为什么不object,它也是一个参考类型.
试图在我的sql语句中参数化TOP的值.
SELECT TOP @topparam * from table1
command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString();
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.有人有什么建议吗?
只是为了澄清,我不想使用存储过程.
如果我可以隐式地将整数值转换为double,例如:
int a = 4;
double b = a;
// now b holds 4.0
Run Code Online (Sandbox Code Playgroud)
为什么我不能这样做:
int[] intNumbers = {10, 6, 1, 9};
double[] doubleNumbers2 = intNumbers.Cast<double>().ToArray();
Run Code Online (Sandbox Code Playgroud)
我得到"指定的演员表无效" InvalidCastException例外.
相反(从double转换为int)会导致相同的错误.
我究竟做错了什么?
第一个声明:
IEnumerable<char> query = "Not what you might expect";
query = query.Where (c => c != 'a');
query = query.Where (c => c != 'e');
query = query.Where (c => c != 'i');
query = query.Where (c => c != 'o');
query = query.Where (c => c != 'u');
Run Code Online (Sandbox Code Playgroud)
产量String.Join("", query):"Nt wht y mght xpct"
第二个声明:
query = "Not what you might expect";
foreach (char vowel in "aeiou")
query = query.Where (c => c != vowel);
Run Code Online (Sandbox Code Playgroud)
产量 …
从未来的这个问题,我不知道为什么ä和ae是不同的(这是有道理的),但ß并ss视为相等.即使这个问题似乎是相关的,我也没有找到答案,甚至提到"这ß将与SS德国或类似的相提并论",但不是为什么.
我发现MSDN上唯一的资源是:如何:比较字符串
这里提到以下但也缺乏原因:
// "They dance in the street."
// Linguistically (in Windows), "ss" is equal to
// the German essetz: 'ß' character in both en-US and de-DE cultures.
.....
Run Code Online (Sandbox Code Playgroud)
那么,为什么要true对de-DE文化或任何其他文化进行评估:
var ci = new CultureInfo("de-DE");
int result = ci.CompareInfo.Compare("strasse", "straße", CompareOptions.IgnoreNonSpace); // 0
bool equals = String.Equals("strasse", "straße", StringComparison.CurrentCulture); // true
equals = String.Equals("strasse", …Run Code Online (Sandbox Code Playgroud) 我希望以下示例代码不言自明:
declare @t1 table (ID int,Price money, Name varchar(10))
declare @t2 table (ID int,Orders int, Name varchar(10))
declare @relation table (t1ID int,t2ID int)
insert into @t1 values(1, 200, 'AAA');
insert into @t1 values(2, 150, 'BBB');
insert into @t1 values(3, 100, 'CCC');
insert into @t2 values(1,25,'aaa');
insert into @t2 values(2,35,'bbb');
insert into @relation values(1,1);
insert into @relation values(2,1);
insert into @relation values(3,2);
select T2.ID AS T2ID
,T2.Name as T2Name
,T2.Orders
,T1.ID AS T1ID
,T1.Name As T1Name
,T1Sum.Price
FROM @t2 T2
INNER …Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×4
linq ×2
sql ×2
t-sql ×2
ado.net ×1
casting ×1
constructor ×1
datetime ×1
debugging ×1
format ×1
group-by ×1
ienumerable ×1
join ×1
overloading ×1
performance ×1
sql-server ×1
string ×1
windows ×1