小编see*_*uit的帖子

使用LINQ to Entities将多个记录插入表的正确方法

正如我们许多人所做的那样,我设置了一个简单的循环来从数据库添加多个记录.一个典型的例子是这样的:

方法一:

// A list of product prices
List<int> prices = new List<int> { 1, 2, 3 };

NorthwindEntities NWEntities = new NorthwindEntities();

foreach (int price in prices)
{
   Product newProduct = new Product();
   newProduct.Price = price;
   NWEntities.Products.AddObject(newProduct);
}

NWEntities.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

然而,当我第一次设置循环时,我直观地写道:

方法二:

Product newProduct = new Product();

foreach (int price in prices)
{
   newProduct.Price = price;
   NWEntities.Products.Add(newProduct);
}
Run Code Online (Sandbox Code Playgroud)

在做了一点阅读之后,几个人提到如果使用方法II,则只会在表格中添加一条记录.这似乎反直觉.这是加载新插入的Add()函数,我认为,在每次调用传入数据后创建一个对象.在循环声明我的Product对象似乎更好地利用资源,因为这是消耗的唯一开销.每次调用都是对象实例属性的重新赋值,而不是对象实例本身的重构.

有人可以澄清一下吗?我找不到另一个直接处理这个问题的帖子.如果有人在那里请指出.

c# ado.net linq-to-entities entity-framework

29
推荐指数
2
解决办法
5万
查看次数

rsync错误代码的完整列表

我正在编写一个脚本,用于执行用户主目录的每日快照.首先,我使用以下方法进行干运行:

rsync -azvrn --out-format="%M %f" source/dir dest/dir
Run Code Online (Sandbox Code Playgroud)

然后是实际的rsync操作(通过删除-n选项).

我正在尝试解析干运行的输出.具体来说,我有兴趣了解rsync错误的确切原因(如果发生了一个).有谁知道

  1. 最常见的rsync错误及其代码?
  2. 指向综合rsync错误代码页的链接?

最重要的是,rsync(至少在CentOs 5上)不会返回错误代码.而是在内部显示错误并返回0.如下所示:

sending incremental file list
rsync: link_stat "/data/users/gary/testdi" failed: No such file or directory (2)

sent 18 bytes  received 12 bytes  60.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
Run Code Online (Sandbox Code Playgroud)

有没有人必须解析rsync错误,并建议如何存储rsync返回状态?我相信,在传输多个文件时,可能会在每个文件的基础上引发错误,并在最后收集,如上面最后一行代码所示.

linux rsync error-code

19
推荐指数
1
解决办法
6万
查看次数

如何使用 Microsoft Graph API 从用户配置文件中获取组织(租户)ID

我正在创建一个加载项,我将使用组织许可来销售该加载项。

我已经在加载项上实施了身份验证方案。我目前正在要求User.Read使用 Azure v2 端点进行可靠身份验证的范围。为了获取我正在查询的用户信息

https://graph.microsoft.com/v1.0/me
Run Code Online (Sandbox Code Playgroud)

为了正确测试用户的许可证,我需要提取用户的组织标识。但是,我从 Grah 请求中收到的用户信息极其精简。对于 AAD 帐户,架构类似于:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
  businessPhones: [],
  displayName: "FirstName LastName",
  givenName: "FirstName",
  id: "unique-id",
  jobTitle: null,
  mail: "First.LastName@COMPANYDOMAIN.COM",
  mobilePhone: null,
  officeLocation: null,
  preferredLanguage: null,
  surname: "LastName",
  userPrincipalName: "FILastName@COMPANYDOMAIN.COM"
}
Run Code Online (Sandbox Code Playgroud)

如果我使用

https://graph.microsoft.com/BETA/me
Run Code Online (Sandbox Code Playgroud)

我获得了更多信息,但没有任何信息可以帮助我确定用户组织的唯一 ID。

是否需要使用不同的范围来获取用户组织的信息?如果没有,我可以依靠解析用户电子邮件中的域名作为用户组织的唯一 ID 吗?我需要查询不同的 API 吗?

更新:OAuth 响应

如果有帮助,在用户使用 AD 进行身份验证后,我会收到以下响应:

{
    access_token: "eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFEWDhHQ2k2SnM2U0s4MlRzRDJQYjdyN1VLTzdJSDJSLWpTcmpScU9..."
    expires_at: Fri May 18 2018 07: 18: 42 GMT - 0400(Eastern Daylight Time) {}
    expires_in: "3599"
    provider: "Microsoft"
    scope: "https://graph.microsoft.com/User.Read"
    session_state: "012f4565-31bb-..."
    state: …
Run Code Online (Sandbox Code Playgroud)

azure-active-directory office-js microsoft-graph-api

13
推荐指数
3
解决办法
9221
查看次数

使用不带参数的Split和RemoveEmptyEntries选项之间的区别

我正在检查给定文本文件中的行.行可能有随机空格,我只对检查行中的单词数而不是空格感兴趣.我做:

string[] arrParts = strLine.Trim().Split();

if (arrParts.Length > 0)
{ 
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在,根据msdn,

If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. White-space characters are defined by the Unicode standard and return true if they are passed to the Char.IsWhiteSpace method.
Run Code Online (Sandbox Code Playgroud)

IsWhiteSpace方法涵盖了许多不同形式的空白,包括通常:' ' \t and \n

不过最近我见过这种格式:

Split(new char[0], StringSplitOptions.RemoveEmptyEntries)

这有什么不同?

c# split removing-whitespace

10
推荐指数
1
解决办法
2189
查看次数

JavaScript绑定方法不适用于getter属性

试着这样做:

var c = {
  x: 'other context'
};

var o = {
  x: 'this context',
  get otherContext () {
    alert(this.x);
  }.bind(c)
};

o.otherContext;
Run Code Online (Sandbox Code Playgroud)

但我得到一个Syntax Error:

未捕获的SyntaxError:意外的令牌.

用例

您可能会问,为什么我可能想要改变吸气剂的背景.在这里引导我的用例涉及创建一个将检索DOM属性的辅助对象.帮助器是在另一个对象中定义的,该对象持有对我需要属性的DOM元素的引用.所以,这个辅助对象实际上只是一些DOM方法的代理,真的,我会这样做:

var ViewObject = function () {
  this.el = document.getElementById('id');

  var proxy = {
    ...
    get left() {
      return this.el.offsetLeft
    }.bind(this)
    ...
  };
};
Run Code Online (Sandbox Code Playgroud)

恕我直言,这是一个非常有效的用例.并且具有父对象的this上下文的一个将是有用的.(也许代理功能可能更合适?嗯......我没有想到这一点.仍然是吸气剂是ES5,代理是ES6,只有常青树和Edge 13+实现,我认为在ES5的范围内问题仍然很非常适用.)

有人可以给我一个合乎逻辑的解释(优先考虑规范)为什么改变吸气剂的上下文是非法的.

javascript

9
推荐指数
1
解决办法
3696
查看次数

用户身份作为不同上下文中的外键

我刚刚开始了一个新的 EF 6.1 Code-First 项目。

我正在使用ApplicationDbContext继承自的Identity 2.0IdentityDbContext

public class ApplicationDbContext
    : IdentityDbContext<ApplicationUser, ApplicationRole,
    string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }

    static ApplicationDbContext()
    {
        Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
    // Add additional items here as needed
}
Run Code Online (Sandbox Code Playgroud)

ApplicationUser模型的上下文。

我有另一个背景, ProfileContext

public class ProfileContext : DbContext
{
    public ProfileContext() : base()
    {
        Database.SetInitializer<ProfileContext>(new DropCreateDatabaseAlways<ProfileContext>());
    }

    public DbSet<Lifestyle> Lifestyles { get; set; }
    public DbSet<CountryName> CountryNames { …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework ef-code-first asp.net-identity

5
推荐指数
0
解决办法
1494
查看次数

ReadAsMultipartAsync 实际上是如何工作的?

canvas我正在使用 FormData API 上传网站中的一个元素。我是这样做的:

upload: function (e) {
    var file = this.imagePreview.ui.canvas.get(0).toDataURL("image/jpeg")
                   .replace('data:image/jpeg;base64,', '');
    if (file) {
        var formData = new FormData();
        formData.append('file', file);
        $.ajax({
            url: app.getApiRoot + 'UserFiles/',
            type: "post",
            data: formData,
            processData: false,
            contentType: false,
            error: function () {
                $("#file_upload_result").html('there was an error while submitting');
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

data:image/jpeg;base64,我将根据这篇文章替换整个业务业务。

在后端我有以下多部分控制器:

public async Task<IHttpActionResult> PostUserFile()
{
    string imageDir = ConfigurationManager.AppSettings["UploadedImageDir"];
    var PATH = HttpContext.Current.Server.MapPath("~/" + imageDir);
    var rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty);

    if (Request.Content.IsMimeMultipartContent()) …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net multipartform-data asp.net-web-api

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

解释器会编译Python脚本吗?

我写了一个脚本,比如说samplescript.py。我记得除了编辑它之外,所做的就是通过命令行 python 解释器运行它。

后来我找到了一个samplescript.pyc文件。通过解释器运行脚本是否总是调用脚本的编译?

python interpreter compilation

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

#if预处理程序指令并不总是崩溃

假设我定义了两个#define预处理器指令:

#define TEST
#define TESTOFF
Run Code Online (Sandbox Code Playgroud)

现在我的代码在TEST和TESTOFF #if指令中组织,例如:

#if TEST
    ...
#endif

...MORE CODE...

#if TESTOFF
    ...
#endif
Run Code Online (Sandbox Code Playgroud)

通常情况下,一个#if区域(例如该#if TEST区域)变得可折叠而另一个#if TESTOFF区域(区域)不变.

由于这是一些可能从未遇到的奇怪现象,我正在附上有关问题的快照: 交替折叠的#if区域

有谁知道什么参数定义#if预处理器指令的这种行为行为?

c# visual-studio-2010 preprocessor-directive

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