比较两个大型(> 50.000个项目)的最快(和最少资源密集型)是什么,因此有两个列表,如下所示:
目前我正在使用List或IReadOnlyCollection并在linq查询中解决此问题:
var list1 = list.Where(i => !list2.Contains(i)).ToList();
var list2 = list2.Where(i => !list.Contains(i)).ToList();
Run Code Online (Sandbox Code Playgroud)
但这并不像我想的那样好.因为我需要处理很多列表,所以想要更快,更少资源吗?
使用(实体框架)EF5处理批量更新的最佳方法是什么?我有两个我感兴趣的特殊情况:
更新一个字段(例如UpdateDate)以获取100到100.000 Id之间的列表(List),这是主键.分别调用每个更新似乎需要很多开销并且需要很长时间.
在单个go中插入多个,也在100到100.000之间的相同对象(例如用户).
有什么好建议吗?
在测试了内置的MVC 5 OAuth2/OpenID提供程序后,我能够创建一个网站,允许我使用我的Twitter凭据进行身份验证.
我现在遇到的问题是,我还想在用户成功通过身份验证后,在网址中存储令牌(oauth_token和oauth_verifier)Twitter帖子.我需要这些令牌,所以我可以允许用户直接从我的网站发布详细信息到他们的Twitter帐户.
在Startup.Auth.cs中设置了TwitterAuthenticationOptions(见下文)后,我确实发现我所关注的令牌可以在上下文中找到,但解析这似乎是一个丑陋的解决方案.(((context.Response.Context).Request).QueryString)
var tw = new TwitterAuthenticationOptions {
ConsumerKey = "SecretKey",
ConsumerSecret = "SecretSecret",
SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
Provider = new TwitterAuthenticationProvider() {
OnAuthenticated = (context) => {
context.Identity.AddClaim(new System.Security.Claims.Claim("urn:twitter:access_token", context.AccessToken, XmlSchemaString, "Twitter"));
return Task.FromResult(0);
}
}
};
app.UseTwitterAuthentication(tw);
Run Code Online (Sandbox Code Playgroud)
如何优雅地实施?对于Facebook我找到了一个实际检索其他信息的解决方案,这感觉类似......
我遇到了将相同类型的记录与连续序列合并并从合并记录中计算完整序列的问题.
排序应该在基础ID上完成,因为当序列达到100时序列可能翻转为0.参见输入/输出示例中的最后一项.
是否可以拥有下面列出的输入并具有生成输出的查询,该输出也在下面的SQL Server 2012中列出?
输入
Id Type Begin End
-----------------------------
1 1 10 20
2 1 21 23
3 2 24 28
4 1 29 40
5 2 41 47
6 2 48 50
7 2 75 80
8 1 81 100
9 1 0 10
10 1 11 20
11 1 21 5
12 1 5 6
Run Code Online (Sandbox Code Playgroud)
产量
FromId ToId Type Begin End Length
----------------------------------------------------
1 2 1 10 23 13 (23-19)
3 3 2 24 28 4 …Run Code Online (Sandbox Code Playgroud) 我有问题,我想在示例中创建N,两个用户对象(例如客户和供应商),这些都是asp.net IdentityUser对象所固有的.除了来自IdentityUser的数据之外,这些对象具有非常不同的附加数据.我想使用IdentityUser用户,因为这为我提供了一种灵活的方式来处理身份验证和授权.
此示例已被删除,但应提供有关无法创建具体用户的充分信息(例如,供应商的客户).我似乎需要使用UserManager对象,因为它还负责创建例如密码哈希和其他安全信息.
我收到以下错误:
{"附加'供应商'类型的实体失败,因为同一类型的另一个实体已经具有相同的主键值.当使用'附加'方法或将实体的状态设置为'未更改'或'已修改时,可能会发生这种情况'如果图中的任何实体具有冲突的键值.这可能是因为某些实体是新的并且还没有收到数据库生成的键值.在这种情况下,使用"添加"方法或"添加"实体状态来跟踪图表,然后根据需要将非新实体的状态设置为"未更改"或"已修改"."}
IdentityUser固有的类
public class Customer : IdentityUser
{
public string CustomerProperty { get; set; }
}
public class Supplier : IdentityUser
{
public string SupplierProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
数据库上下文类
public class ApplicationDbContext : IdentityDbContext {
public ApplicationDbContext() : base("ApplicationDbContext")
{
Database.SetInitializer(new ApplicationDbInitializer());
}
public DbSet<Customer> CustomerCollection { get; set; }
public DbSet<Supplier> SupplierCollection { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
引发异常的种子类
public class ApplicationDbInitializer : DropCreateDatabaseAlways<ApplicationDbContext>
{
protected override void Seed(ApplicationDbContext context)
{
var userStore = …Run Code Online (Sandbox Code Playgroud) 使用Fancybox 2,下面的示例可以完美地工作(省略其他代码)
<a class="fancybox" href="https://si0.twimg.com/profile_images/2169856486/avatar.jpg" title="some title">
<img src="http://a0.twimg.com/profile_images/2169856486/avatar_normal.jpg" alt="" />
</a>
Run Code Online (Sandbox Code Playgroud)
但是下面的代码将图像加载到单独的页面上
<a class="fancybox" href="https://api.twitter.com/1/users/profile_image?screen_name=boris&size=original" title="some title">
<img src="http://a0.twimg.com/profile_images/2169856486/avatar_normal.jpg" alt="" />
</a>
Run Code Online (Sandbox Code Playgroud)
问题似乎是Twitter API提供的图像URL,它返回(301)重定向到完整图像的实际位置.有什么方法可以让Fancybox处理使用重定向提供的图像,并且弹出窗口仍然具有所服务图像的大小.
帮助将不胜感激.
坦率
c# ×3
twitter ×2
asp.net ×1
asp.net-mvc ×1
fancybox ×1
fancybox-2 ×1
javascript ×1
linq ×1
list ×1
sql-server ×1
t-sql ×1