正如我们许多人所做的那样,我设置了一个简单的循环来从数据库添加多个记录.一个典型的例子是这样的:
// 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对象似乎更好地利用资源,因为这是消耗的唯一开销.每次调用都是对象实例属性的重新赋值,而不是对象实例本身的重构.
有人可以澄清一下吗?我找不到另一个直接处理这个问题的帖子.如果有人在那里请指出.
我正在编写一个脚本,用于执行用户主目录的每日快照.首先,我使用以下方法进行干运行:
rsync -azvrn --out-format="%M %f" source/dir dest/dir
Run Code Online (Sandbox Code Playgroud)
然后是实际的rsync操作(通过删除-n选项).
我正在尝试解析干运行的输出.具体来说,我有兴趣了解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返回状态?我相信,在传输多个文件时,可能会在每个文件的基础上引发错误,并在最后收集,如上面最后一行代码所示.
我正在创建一个加载项,我将使用组织许可来销售该加载项。
我已经在加载项上实施了身份验证方案。我目前正在要求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 吗?
如果有帮助,在用户使用 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) 我正在检查给定文本文件中的行.行可能有随机空格,我只对检查行中的单词数而不是空格感兴趣.我做:
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)
这有什么不同?
试着这样做:
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的范围内问题仍然很非常适用.)
我刚刚开始了一个新的 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) 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) 我写了一个脚本,比如说samplescript.py。我记得除了编辑它之外,所做的就是通过命令行 python 解释器运行它。
后来我找到了一个samplescript.pyc文件。通过解释器运行脚本是否总是调用脚本的编译?
假设我定义了两个#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预处理器指令的这种行为行为?
c# ×5
.net ×2
ado.net ×1
asp.net ×1
compilation ×1
error-code ×1
interpreter ×1
javascript ×1
linux ×1
office-js ×1
python ×1
rsync ×1
split ×1