这个问题不是关于c#的一般“使用”,也不是关于什么时候/为什么要使用它等等。
问题是,DBContext对象是否自行处理连接,因此我不需要使用using来使其处理,因此毫无疑问,不会将其标记为重复的
using (DBContext db = new DBContext())
{
var Order = db.Order.First(r => r.OrderID == 6);
Order.Type = 6;
db.SaveChanges();
}
或不使用
DBContext db = new DBContext();
var Order = db.Order
在我的测试中,我将逐行读取文本文件,并与其他相关实体一起插入一个实体。问题是当太多的插入,我收到一个内存不足的异常。
为了防止这种情况,我每50行创建一个新的DbContext,并将旧的行处理掉。我的理解是,这将从以前的实体操作中释放内存,但是内存继续攀升,如果文件足够大,就会出现内存不足的异常。这与实体代码相关,就好像我删除了添加实体的代码行一样,内存保持在一致的用法中。
下面是我的代码的简化版本。
public class TestClass
{
public void ImportData(byte[] fileBytes)
{
using (Stream stream
我正在处理我的C#程序内存的使用,我在我的应用程序的开始和结束之间设置了一个内存控制,以发现内存泄漏。当在Firebird中使用实体框架6时,我收到了警告:
var m = GC.GetTotalMemory(true) / 1024 / 1024; // 2MB
using (Entities context = new Entities(ConnectionString))
{
m = GC.GetTotalMemory(true) / 1024 / 1024; //2MB
context.MYTABLE.FirstOrDefault();
m = GC.G
通常在使用实体框架时,我使用的是“使用”子句:
using (var db = new dbcontext())
{
var blabla = db.table.tolist();
}
现在,我们已经将我们的平台迁移到.Net核心(2)中,并且由于有一个很好的DI机制,所以我们决定使用它。现在,我们不再使用上述方式,而是将dbcontext作为构造函数中的参数:
public MeaningfullNameController(dbcontext db)
{
this.db = db;
}
当另一个类需要使用dbcontext时,我们只需在第二个类的构造函数中传递上面的dbco
我正在创建一个web应用程序,它将在世界上的每个城镇、地区和国家建立一个数据库,以便将其他对象映射到某个位置。作为应用程序的一部分,我希望用户能够搜索某个位置,为此,我使用弹性搜索来索引所有内容。为了与弹性搜索交互,我正在使用NEST。
我有以下代码:
public void RefreshLocationIndex()
{
int count;
using (var dbContext = new ModelContext())
{
IndexMany(dbContext.Countries, "Country");
}
我是.NET实体框架的新手,正在尝试迭代一个包含数百万行的表中的记录。下面是基本代码:
// select the records from the database
var records = from data in dataContext.Messages
select data;
// iterate over the messages
foreach (var record in records)
{
// do nothing
}
当我迭代数据的时候,我得到了一个“over异常”。有没有什么方法可以改变我的查询或者管理ObjectQuery
在SQL Server Compact Edition中使用Entity Framework时发生内存泄漏。我的情况:
我有一个大约600MB大的文件。我逐行读取它,创建一个实体类并将其添加到SQL Server CE数据库中。通过它,内存增长非常快。第0代收集计数器和第2代堆大小增长非常快(来自Process Explorer的信息)。如果我没理解错的话,第二代堆是针对大对象的。我认为我的实体类是一个很大的对象。所以实体框架会保存我的对象,并且不会释放它们。我已经尝试分离它们并调用GC.Collect(2),但是没有帮助。
首先,我读了这行字。然后在解析该行之后创建一个对象。然后将其添加到数
我正在通过dotMemory JetBrains监控我的软件的内存消耗。
我注意到,当我通过我的存储库进行查询时,如果我关闭窗口,我就会离开我进行调用的对象;我将存储库放到内存中,我使用并甚至处置了我的上下文,但什么也没有留下。在内存中。我可以检查什么?
下面是有问题的代码:
LoginViewModel.cs
using (DbContext = new Context())
{
var creazioneDocumentoRepository = new RepositoryBase<CreazioneDocumento>(ctx);
var creazioneDo
在VB6.0中,对于一个类,我有以下代码:
Private Sub Class_Terminate()
Call MethodFoo(False)
Set objet1 = Nothing
Set object2 = Nothing
End Sub
现在我需要在C#中做同样的事情,我不太担心这两个空对象,但我需要那个被调用的可恶的MethodFoo()。在它的C#等价类中添加终结器是安全的吗?(而不是在终结器方法中),我已经收到了奇怪的错误,因为我的C#类中有这个终结器方法,我也想摆脱它。
如果我在一个公共类中声明一个像这样的静态队列:
public class c
{
private string[] s={"a","b","c"};
private static Queue<string> q = new Queue<string>(s);
static private void SomeMethod()
{
private string[] s2 = {"123","345"};
// somewhere in here I reas
我正在使用infragistics在asp.net上进行开发。我已经开发了一个网页,它使用了webdatagrid的大量功能,加载速度非常慢。
我已经对页面进行了多次测试,但不知何故,它开始触发这个异常
An unhandled exception of type 'System.ExecutionEngineException' occurred in mscorlib.dll
而不显示任何源代码管理。我的问题是,这个错误是什么意思?
房型
public class Room
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
Id是这里的主键
与实体框架一样,所有的空间细节都在dbcontext中。
dbContext.Rooms
还有一个IList<Room> updateRooms,上面列出了几个房间的最新姓名和地址。
如何使用主键dbContext.Rooms更新updateRooms中匹配项的Id,并使用实体框架保存到DB。
注意:
给定一个实体和一个DbContext,如下所示:
public class Entity
{
public int Id {get;set;}
public string LargeString {get;set;}
}
public class MyDbContext : DbContext
{
public DbSet<Entity> Entities {get;set;}
}
以及存储在数据库中的实体,其中包含约2 of的Id 42和LargeString。下面的内容大约需要半分钟,偶尔会给OutOfMemoryException
using (va
我在处理asp.net mvc应用程序中的实体框架连接时遇到了奇怪的问题。
例如,我有一个简单的结构:
实体:
public class EmployeeReport
{
public int EmployeeReportId { get; set; }
public DateTime Created { get; set; }
public Decimal Hours { get; set; }
public string Comment { get; set; }
public int EmployeeId { get; set; }
我有两个DbContext类和其中的一些实体。我知道这不是一个以上的DbContext的好主意,但我必须做很多工作来改变我的代码!因此,我的问题是,在两个具有不同DbContext的实体之间添加关系的最佳场景是什么?
例如,具有IdentityDb上下文的用户实体与具有SiteDbContext的注释实体之间存在一对多的关系:
public class User : IdentityUser
{
public DateTime JoinDate { get; set; }
public async Task<ClaimsIdentity> GenerateUserI
我已经开始使用实体框架开发ASP.NET MVC应用程序,我希望使用DDD。这是我第一次在ASP.NET中使用DDD (直到现在才在PHP中使用),所以我有点困惑。我使用代码优先的方法,所以我在核心中创建实体,然后在基础架构中创建DbContext。
我的问题是关于数据注释的:是否可以对核心中的实体进行编年化?使用Required、DataType等,或者我必须创建具有纯C#验证的条目(在setter和getter中),然后为数据库创建创建映射对象?
例如,我得到:
public class Account
{
public string AccountName { get; set;
当使用单个用户帐户时,我注意到MVC的项目模板将一些对象放在当前的Owin上下文中(在App_Start/Startup.Auth.cs中):
// Configure the db context, user manager and signin manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManag
有没有什么情况下,使用不会处理它应该处理的对象?
例如,
using(dbContext db = new dbContext()){ ... }
有没有办法在最后一个}之后db仍然存在?
如果出现这种情况怎么办:
object o = new object();
using(dbContext db = new dbContext()){
o = db.objects.find(1);
}
有没有可能o能让db活着?