小编Joh*_*eer的帖子

automapper可以使用存储库将外键映射到对象吗?

我正在尝试实体框架代码第一个CTP4.假设我有:

public class  Parent
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Child
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Parent Mother { get; set; }
}

public class TestContext : DbContext
{
    public DbSet<Parent> Parents { get; set; }
    public DbSet<Child> Children { get; set; }
}

public class ChildEdit
{
    public int Id { get; set; }
    public string …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc automapper

19
推荐指数
2
解决办法
9391
查看次数

实体框架内存未发布

我正在使用一个非常简单的asp.net mvc应用程序与Entity Framework 6.0.2,.Net 4.5.1:

public class HomeController : Controller
{
   public ActionResult Index()
   {
      int count;
      using (var db = new LocalContext())
      {
         count = db.Counters.Count();
      }
      return View(count);
   }
}

public class Counter
{
   public int Id { get; set; }
}

public class LocalContext : DbContext
{
   public DbSet<Counter> Counters { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我对它进行负载测试,我最终会得到Out of Memory异常.(tinyget -srv:localhost -port:<port> -uri:/home/index/ -threads:30 -loop:5000).在性能监视器中,我看到第2代Heap稳步增长.如果我使用较小的循环值(比如500),则大小会增加,直到tinyget停止.然后堆大小保持不变(至少20分钟,之后我停止了服务器).

我究竟做错了什么?

编辑

所以我尝试了Simon Mouriers的建议并省略了EF代码.然后我没有记忆问题.所以我想,也许如果我使用Release而不是Debug,它会有所作为.它做到了!内存在一段时间后被释放,我可以在网站上施加高负荷.然后我切换回Debug,看看我是否可以获得更多信息......即使在调试模式下也没有问题了.FML,我工作了一天,现在我再也无法重现了.

c# entity-framework entity-framework-6

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

实体框架和多对多查询无法使用?

我正在尝试使用EF,我根据多对多关系进行了大量过滤.例如,我有人,地点和人员位置表来链接这两者.我也有角色和人员表.

EDIT: Tables:

Person (personid, name)

Personlocation (personid, locationid)

Location (locationid, description)

Personrole (personid, roleid)

Role (roleid, description)
Run Code Online (Sandbox Code Playgroud)

EF将为我提供人员,角色和位置实体.编辑:由于EF 不会生成personlocation和personrole实体类型,因此不能在查询中使用它们.

如何创建查询以向我提供具有给定角色的给定位置的所有人员?

在SQL中,查询将是

select p.*
from persons as p
join personlocations as pl on p.personid=pl.personid
join locations       as l  on pl.locationid=l.locationid
join personroles     as pr on p.personid=pr.personid
join roles           as r  on pr.roleid=r.roleid
where r.description='Student' and l.description='Amsterdam'
Run Code Online (Sandbox Code Playgroud)

我看了,但我似乎无法找到一个简单的解决方案.

.net many-to-many entity-framework

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

当模型状态在回发时有效时,文本框将恢复为旧值

也许我错过了一些东西但是当我有一个回复相同动作的表单时,文本框值会恢复为旧值.以下示例应在每个POST的文本框中增加值.这不会发生,模型上的值会增加并且模型有效.

但是,如果我清除了HttpPost Action中的模型状态(代码中的注释),一切都按预期工作.

我错过了什么吗?

这是代码:

模型:

public class MyModel
{
    public int MyData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

视图:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.MyModel>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) {%>
    <%: Html.TextBoxFor(m => m.MyData)%>   (<%: Model.MyData%>)
                  <%: Html.ValidationMessageFor(m => m.MyData) %> <br />
    State :<%: ViewData["State"] %> <br />
    <input type="submit" />
<% } %>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

控制器:

public class HomeController : Controller
{
    [HttpGet]
    public ActionResult Index()
    {
        return View(new MyModel { MyData = 0 }); …
Run Code Online (Sandbox Code Playgroud)

binding asp.net-mvc-2

11
推荐指数
1
解决办法
5259
查看次数

如何正确执行Parallel.ForEach,锁定和进度报告

我正在尝试实现Parallel.ForEach模式并跟踪进度,但我遗漏了一些有关锁定的内容.以下示例计数为1000时threadCount = 1,但不是threadCount> 1. 当正确的方法是什么时候?

class Program
{
   static void Main()
   {
      var progress = new Progress();
      var ids = Enumerable.Range(1, 10000);
      var threadCount = 2;

      Parallel.ForEach(ids, new ParallelOptions { MaxDegreeOfParallelism = threadCount }, id => { progress.CurrentCount++; });

      Console.WriteLine("Threads: {0}, Count: {1}", threadCount, progress.CurrentCount);
      Console.ReadKey();
   }
}

internal class Progress
{
   private Object _lock = new Object();
   private int _currentCount;
   public int CurrentCount
   {
      get
      {
         lock (_lock)
         {
            return _currentCount;
         }
      } …
Run Code Online (Sandbox Code Playgroud)

c# locking task-parallel-library

8
推荐指数
2
解决办法
3万
查看次数

使用DeviceAdminReceiver锁定设备

我尝试使用DeviceAdminReceiver锁定设备并尝试启用以下管理:

if (!mDPM.isAdminActive(mDeviceAdminSample)) {
  Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
  intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
  intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Additional text explaining why this needs to be added.");   startActivity(intent);
 }
Run Code Online (Sandbox Code Playgroud)

并得到如下错误:

错误/错误(1022):java.lang.SecurityException:uid 10045没有为策略#3拥有的活动管理员

请给我一些代码解决方案以及如何启用管理权限.

android device-admin

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

在循环中构建查询,实体框架奇怪的行为

我在我的Entity Framework repo上创建了这个搜索方法:

public IEnumerable<Person> GetPersonsWithFilter(string filter)
{
    var items = 
        filter.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
    var query = _personRepo.All();  // Return IQueryable<Person>

    foreach (var item in items)
    {
        query = query.Where(i => i.SearchName.Contains(item.ToLower()));
    }

    query.TraceSql(i => Logger.Error(i));
    return query.Take(50);
}
Run Code Online (Sandbox Code Playgroud)

TraceSql输出生成的sql.如果我的过滤器是"John Landheer",则正确生成sql:

SELECT   [Extent1].[PersonId] AS [PersonId] // Other fields deleted for readability
FROM [dbo].[Person] AS [Extent1]  
WHERE 
(( CAST(CHARINDEX(LOWER(@p__linq__0), [Extent1].[SearchName]) AS int)) > 0) 
AND 
(( CAST(CHARINDEX(LOWER(@p__linq__1), [Extent1].[SearchName]) AS int)) > 0)  
Run Code Online (Sandbox Code Playgroud)

但是,参数是相同的:@p_ linq _0 ='landheer'和@p_ linq …

c# linq-to-entities entity-framework

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

dropdownlistfor没有在循环中选择正确的值

我有以下代码

public class TestModel
{
   public int TestId1 { get; set; }
   public int TestId2 { get; set; }
   public int TestId3 { get; set; }
   public List<TestSubModel> SubMods { get; set; }

   public IEnumerable<SelectListItem> SelectListItems { get; set; }
}

public class TestSubModel
{
   public string ItemId { get; set; }
}

public class HomeController : Controller
{
   public ActionResult Index()
   {
      var m = new TestModel
      {
         TestId1 = 1,
         TestId2 = 2,
         TestId3 = 3,
         SelectListItems = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor

6
推荐指数
0
解决办法
1428
查看次数

EF4代码首先添加的项目对我来说不是很清楚

我不明白为什么代码在调用savechanges之前首先不向集合中添加新项.我从NuGet(4.1.10331.0)安装了EF4.1.我创建了以下示例:

public class TinyItem
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class TinyContext : DbContext
{
    public virtual DbSet<TinyItem> Items { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        using (var ctx1 = new TinyContext())
        {
            ListItems(ctx1, "Start");

            ctx1.Items.Add(new TinyItem { Name = "Test1" });
            ListItems(ctx1, "After add");

            ctx1.SaveChanges();
            ListItems(ctx1, "After commit");
        }

        Console.ReadKey();
    }

    public static void ListItems(TinyContext ctx, string label="")
    {
        Console.WriteLine("=========================================");
        Console.WriteLine(label);
        Console.WriteLine(string.Format("Items.Local: …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first

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

在哪里为webservice配置automapper配置?

我读到一个Web服务没有global.asax来配置全局设置(比如automapper配置).所以我的问题是:

我应该将自动播放器配置放在每个web方法中,还是我可以在全球范围内放置它?

我每晚都要拨打几千次网络服务,所以我担心如果自动播放器配置昂贵,则需要更长的时间.我是纠正还是只是不必要地担心?

谢谢,约翰

configuration web-services automapper

4
推荐指数
1
解决办法
1772
查看次数

如何在reportviewer控件中更改数据源

我的页面上有一个reportviewer(Microsoft.ReportViewer.WebForms)控件.我的所有报告都使用一个数据源.我希望能够从我的UAT环境启动时让我的报告在不同的数据库上运行.因此报告的位置是相同的,但数据来自不同的数据库.我似乎无法找到这是怎么做的,它甚至可能吗?

编辑:它们是SQL Server上的服务器报告.我知道你可以设置programificaly数据集,但我只是希望报告指向不同的数据库并保持报告的其余部分不变.2005年TIA,

约翰

asp.net reportviewer reporting-services

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