我有一个带有500K记录的制表符分隔的txt文件.我正在使用下面的代码将数据读取到数据集.使用50K它工作正常,但500K它给出了"类型'System.OutOfMemoryException'的异常被抛出."
读取大型制表符分隔数据的更有效方法是什么?或者如何解决这个问题?请举个例子
public DataSet DataToDataSet(string fullpath, string file)
{
string sql = "SELECT * FROM " + file; // Read all the data
OleDbConnection connection = new OleDbConnection // Connection
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fullpath + ";"
+ "Extended Properties=\"text;HDR=YES;FMT=Delimited\"");
OleDbDataAdapter ole = new OleDbDataAdapter(sql, connection); // Load the data into the adapter
DataSet dataset = new DataSet(); // To hold the data
ole.Fill(dataset); // Fill the dataset with the data from the adapter
connection.Close(); // Close the connection
connection.Dispose(); // …Run Code Online (Sandbox Code Playgroud) 我在AWT中看到了一种方法:java.awt.Window.getWindows().在JavaFx中,有没有任何方法可以获得所有窗口的JavaFx应用程序?
谢谢,
我正在为下面的 angular 函数编写 jasmine 测试用例,并收到测试用例失败消息“预期的间谍 [对象对象] 已被调用”。
$scope.displayTagModelPopup = function() {
var dialogOptions = {
templateUrl: 'views/mytags.html',
controller: 'TagsCtrl',
size: 'lg',
resolve: {
tagsAvailable: function() {
return $scope.availableTags;
}
}
};
ModalDialogFactory.showDialog(dialogOptions).then(function(result) {
$scope.selectedFields = [];
$scope.selectedFieldIds = [];
angular.forEach(result, function(tag) {
$scope.selectedFields.push(tag);
$scope.selectedFieldIds.push(tag.objectId);
});
});
};
Run Code Online (Sandbox Code Playgroud)
我的茉莉花测试用例
it('should call displayTagModelPopup', function() {
var dialogOptions = {
templateUrl: 'views/mytags.html',
controller: 'TagsCtrl',
size: 'lg',
tagsAvailable: [{
objectId: "c647abc7-f651-4df6-880d-cf9fb69cdcb0",
dataFieldName: "author",
shortNamePath: "$.author",
templates: ["HaM sheet"]
}]
};
var spy = jasmine.createSpy(modalDialogFactory, …Run Code Online (Sandbox Code Playgroud) 首先,我使用的是NEST 5.5.0。
我对远程 elasticsearch-index 的使用如下:
var node = new Uri("http://distribution.virk.dk/cvr-permanent");
var settings = new
ConnectionSettings(node).DefaultIndex("virksomhed");
settings.BasicAuthentication("username", "password");
var client = new ElasticClient(settings);
var searchResponse = client.Search<Company>(s => s
.AllTypes().Query(q => q
.Match(m => m
.Field(f => f.cvrNumber)
.Query("35954716")
)
)
);
Run Code Online (Sandbox Code Playgroud)
索引中的映射(除了 cvrNummer 之外没有一堆其他属性)如下:
{
"cvr-permanent-prod-20170205" : {
"mappings" : {
"virksomhed" : {
"_size" : {
"enabled" : true
},
"properties" : {
"Vrvirksomhed" : {
"properties" : {
"type" : "long"
},
"cvrNummer" : {
"type" : "string" …Run Code Online (Sandbox Code Playgroud) 有预测(0 变化):
var changesBefore = Db.ChangeTracker.Entries<OrderLocationEntity>().ToList(); //before change - 0
var orderLocation = Db.OrderLocation.AsTracking().Select(ol => new OrderLocationEntity
{
Id = ol.Id,
Address = ol.Address,
City = ol.City,
Created = ol.Created,
OrderId = ol.OrderId,
Zip = ol.Zip
}).First();
orderLocation.Address = "address";
var changesAfter = Db.ChangeTracker.Entries<OrderLocationEntity>().ToList(); //after change - 0
Run Code Online (Sandbox Code Playgroud)
没有预测(1 处更改)
var changesBefore = Db.ChangeTracker.Entries<OrderLocationEntity>().ToList(); //before change - 0
var orderLocation = Db.OrderLocation.AsTracking().First();
orderLocation.Address = "address";
var changesAfter = Db.ChangeTracker.Entries<OrderLocationEntity>().ToList(); //after change - 1
Run Code Online (Sandbox Code Playgroud)
设置
微软.EntityFrameworkCore 3.1.1
Microsoft.EntityFrameworkCore.Sqlite 3.1.1
var options …Run Code Online (Sandbox Code Playgroud) c# entity-framework-core .net-core entity-framework-core-3.1
我从数据库中提取了一堆时间表条目,并使用它们来创建发票.保存发票并拥有ID后,我想用发票ID更新时间表条目.有没有办法批量更新实体而不是一次加载一个实体?
void SaveInvoice(Invoice invoice, int[] timeEntryIds) {
context.Invoices.Add(invoice);
context.SaveChanges();
// Is there anything like?
context.TimeEntries
.Where(te => timeEntryIds.Contains(te.Id))
.Update(te => te.InvoiceId = invoice.Id);
}
Run Code Online (Sandbox Code Playgroud) 在我的ConfigureServices中,我创建了一个基于策略的授权
services.AddAuthorization(options =>
{
options.AddPolicy("test", policy => policy.Requirements.Add(new TestRequirement()));
});
Run Code Online (Sandbox Code Playgroud)
并按如下所示注册处理程序
services.AddSingleton<IAuthorizationHandler, CustomAuthorizationHandler>();
Run Code Online (Sandbox Code Playgroud)
而不是像这样在所有控制器上应用授权
[Authorize(Policy = "test")]
Run Code Online (Sandbox Code Playgroud)
有没有办法像MVC 5中那样全局应用授权属性?
我试过了
services.AddMvc(config=>config.Filters.Add(new AuthorizeAttribute("test")))
Run Code Online (Sandbox Code Playgroud)
但我认为这里有问题。
authorization asp.net-authorization asp.net-core-mvc asp.net-core asp.net-core-2.0
我正在为不同的代码编写这个Action代码(在同一个控制器中)10次以上Models.有什么方法可以减少这个代码或如何创建一个通用的操作.
[HttpPost]
public ActionResult SavePerson(Person p)
{
if (ModelState.IsValid)
{
//do something
return Redirect("/Main");
}
else
{
return View();
}
}
[HttpPost]
public ActionResult SaveCategory(Category c)
{
if (ModelState.IsValid)
{
//do something
return Redirect("/Main");
}
else
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud) 我有两个查询,如下所示:
var ret = (from x in _context.CustomUsers
where x.Name != currentUser
join c in _context.Claims on x.Name equals c.UserID into m
from c in m.DefaultIfEmpty()
select new UsersClients
{
UserName = x.Name,
DefaultClient = "N/A",
Role = null
}).ToList();
Run Code Online (Sandbox Code Playgroud)
这将返回一个列表,如下所示:
User1 N/A null
User2 N/A null
User3 N/A null
Run Code Online (Sandbox Code Playgroud)
为了这:
var q = (from x in _context.Claims
where x.Default == true
select new
{
x.UserID,
x.ClientName
}).ToList();
Run Code Online (Sandbox Code Playgroud)
这将返回一个列表,如下所示:
User1 Client1
User2 Client3
Run Code Online (Sandbox Code Playgroud)
第一个查询返回第二个查询中不存在的用户。然后我想对两个结果进行左外连接,这样我就可以从第二个查询中提取客户端,如果它为空。用字符串替换它。
我的第三个查询如下所示:
var p = (from x …Run Code Online (Sandbox Code Playgroud) 我们有一个ASP.NET应用程序.我们无法编辑控制器的源代码.但是我们可以实现ActionFilter.
我们的一个控制器操作方法返回JSON.是否可以在ActionFilter中修改它?我们需要为返回的对象添加一个属性.
也许,还有其他一些方法可以实现吗?
我在使用 Solr 的建议组件时遇到问题,我想使用的实现类是 AnalyzingInfixLookupFactory,我使用它来获取基于中缀的建议,而不仅仅是前缀。我还需要 Solr 将搜索词视为一个标记。但问题是 Solr 总是根据前缀而不是中缀返回建议。
我在 solrconfig.xml 中的 Suggest 组件:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str> <!-- org.apache.solr.spelling.suggest.fst -->
<str name="dictionaryImpl">DocumentDictionaryFactory</str> <!-- org.apache.solr.spelling.suggest.HighFrequencyDictionaryFactory -->
<str name="field">movie_name</str>
<str name="weightField">movie_meter</str>
<str name="buildOnCommit">true</str>
<str name="suggestAnalyzerFieldType">text_general</str>
</lst>
Run Code Online (Sandbox Code Playgroud)
schema.xml 中的 text_general:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×2
asp.net-mvc ×2
java ×2
.net-core ×1
angularjs ×1
asp.net ×1
asp.net-core ×1
file-io ×1
jasmine ×1
javafx ×1
javascript ×1
json ×1
left-join ×1
linq ×1
lucene ×1
nest ×1
refactoring ×1
search ×1
solr ×1