小编Yak*_*ych的帖子

何时以及如何使用龙卷风?什么时候没用?

好吧,Tornado是非阻塞的,非常快,它可以轻松处理很多常备请求.

但我想这不是一个银弹,如果我们盲目地运行基于Django或任何其他Tornado网站,它将不会给任何性能提升.

我找不到对此的全面解释,所以我在这里问:

  • 什么时候应该使用龙卷风?
  • 什么时候没用?
  • 使用时,应该考虑什么?
  • 我们如何使用Tornado 制作效率低下的网站?
  • 有一个服务器和一个webframework.我们什么时候应该使用框架?何时可​​以用其他框架替换它?

python asynchronous tornado nonblocking

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

使用moq仅模拟一些方法

我有以下方法:

public CustomObect MyMethod()
{
    var lUser = GetCurrentUser();
    if (lUser.HaveAccess)
    {
        //One behavior
    }
    else 
    {
        //Other behavior
    }

    //return CustomObject
}
Run Code Online (Sandbox Code Playgroud)

我想要模拟IMyInterface.GetCurrentUser,以便在调用时MyMethod我可以访问其中一个代码路径来检查它.如何用Moq做到这一点?

我正在做以下事情:

var moq = new Mock<IMyInterface>();            
moq.Setup(x => x.GetCurrentUser()).Returns(lUnauthorizedUser);

//act
var lResult = moq.Object.MyMethod();
Run Code Online (Sandbox Code Playgroud)

但由于某些原因lResult总是null,当我试图进入MyMethod调试时,我总是跳到下一个声明.

moq

61
推荐指数
4
解决办法
4万
查看次数

EF 4.1加载过滤的子集合不适用于多对多

我一直在寻找在显式加载相关实体时应用过滤器,并且无法使其适用于多对多关系.

我创建了一个简单的模型:模型

简要说明:
A Student可以占用很多Courses,Course也可以有很多Students.
A Student可以制作很多Presentation,但Presentation只能由一个制作Student.
所以我们所拥有的是StudentsCourses之间的多对多关系,Student以及和之间的一对多关系Presentations.

我还添加了一个Student,一个Course和一个Presentation相互关联.

这是我正在运行的代码:

class Program
{
    static void Main()
    {
        using (var context = new SportsModelContainer())
        {
            context.Configuration.LazyLoadingEnabled = false;
            context.Configuration.ProxyCreationEnabled = false;

            Student student = context.Students.Find(1);

            context.
                Entry(student).
                Collection(s => s.Presentations).
                Query().
                Where(p => p.Id == 1).
                Load(); 

            context.
                Entry(student).
                Collection(s => …
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-4.1

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

context.SaveChanges不起作用

我的更新方法不适用于ASP.NET MVC 3应用程序.我使用了以下EF 4.1代码:

[HttpPost]
public ActionResult UpdateAccountDetails(Account account)
{
    if (ModelState.IsValid)
    {
        service.SaveAccount(account);
    }
}
Run Code Online (Sandbox Code Playgroud)

并且SaveAccount看起来是这样的:

internal void SaveAccount(Account account) {         
    context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework entity-framework-4.1 asp.net-mvc-3

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

LINQ:获取表详细信息

我正在使用LINQPad,我想知道表的架构细节.

我知道我是用SQL做的:

SELECT column_name,* 
FROM information_schema.columns
WHERE table_name = '{table_name}'
ORDER BY ordinal_position
Run Code Online (Sandbox Code Playgroud)

我怎么能用LINQ做到这一点?

.net c# linq linq-to-sql

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

Typescript Discriminated Union允许无效状态

我试图使用Typescript Discriminated Union来模拟异步加载数据时的一个相当常见的场景:

type LoadingState = { isLoading: true; }
type SuccessState = { isLoading: false; isSuccess: true; }
type ErrorState =   { isLoading: false; isSuccess: false; errorMessage: string; }

type State = LoadingState | SuccessState | ErrorState;
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这应该根据类型定义限制允许的值组合.但是,类型系统很乐意接受以下组合:

const testState: State = {
    isLoading: true,
    isSuccess: true,
    errorMessage: "Error!"
}
Run Code Online (Sandbox Code Playgroud)

我希望这里有一个错误.有什么我缺少或在某种程度上滥用类型定义?

discriminated-union typescript

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

Stub Entity的实体框架代码第一次更新

是否可以在EF Code-First中更新而不使用存根对象查询db中的整行,...

例如

public class Dinner 
{     
    public int DinnerID { get; set; }     
    public string Title { get; set; }     
    public DateTime EventDate { get; set; }     
    public string Address { get; set; }     
    public string Country { get; set; }     
    public string HostedBy { get; set; }       
}



Dinner dinner = dinner.DinnerID = 1;     
dinner.HostedBy = "NameChanged" 
nerdDinners.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

上面的代码是否会创建一个Update Statement,它会使DinnerID 1行的以下列为null?

标题,EventDate,地址,国家

有没有像"PropertyModified"= true的方式或方法,那么其余的使它们= false,以便HostedBy是唯一一个将被更新的?

entity-framework ef-code-first

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

我的ViewData如何为空,但在调试器中是否可扩展?

在调试View时遇到了一个有趣的效果.这个场景很容易重现 - 我有一个断点View,在我添加的Watch窗口中ViewBag.ViewData,值是null.但是,如果我只是添加ViewBag和扩展对象,我可以看到ViewData它而不是null.我也可以成功扩展它并查看其属性.

任何人都可以解释这是一个错误或是什么原因导致这种行为?

Watch窗口中的ViewBag.ViewData

编辑

ViewBag.ViewData实际上是null.例如,如果我在视图中有此代码:

if (ViewBag.ViewData == null)
{
    <span>ViewBag.ViewData is null</span>
}
Run Code Online (Sandbox Code Playgroud)

它显示跨度.所以奇怪的是我可以在观察窗口中展开它并查看属性.

EDIT2

为了回应@Darin Dimitrov的回答 - 我尝试使用自定义测试类重现此行为,并RuntimeBinderException在尝试访问私有属性时获得'SomeClass.SomeProperty' is inaccessible due to its protection level:

public class SomeClass
{
    private string SomeProperty;
}

dynamic dynamicObject = new SomeClass();
if (dynamicObject.SomeProperty == null)
{
    Console.WriteLine("dynamicObject.SomeProperty is null");
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,ViewBag.ViewData在View中访问时,我不应该得到相同的异常(行if (ViewBag.ViewData == null))吗?

c# asp.net-mvc dynamic viewbag

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

首先将此SQL转换为lambda for EF 4 Code

我有这个Sql语句

SELECT * FROM Game 
        INNER JOIN Series ON Series.Id = Game.SeriesId 
        INNER JOIN SeriesTeams ON SeriesTeams.SeriesId = Series.Id 
        INNER JOIN Team ON Team.Id = SeriesTeams.TeamId 
        INNER JOIN TeamPlayers ON TeamPlayers.TeamId = Team.Id 
        INNER JOIN Player ON Player.Id = TeamPlayers.PlayerId 
    WHERE AND Game.StartTime >= GETDATE() 
        AND Player.Id = 1
Run Code Online (Sandbox Code Playgroud)

我希望将其转换为lambda表达式.

这是它的工作原理.

游戏只能加入1系列,但系列当然可以有很多游戏.一个系列可以有很多团队,一个团队可以加入很多系列.玩家可以在许多团队中玩,团队中有很多玩家.

SeriesTeams和TeamPlayers只是EF创建的多对多表,用于保存系列/团队和团队/玩家之间的引用

提前致谢...

编辑:我使用EF 4 CTP5并希望得到lambda函数的答案,或者如果更容易就在linq中...

entity-framework entity-framework-4.1

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

删除/更新多对多实体框架.无法让它发挥作用

我使用EF4并且有多项更新和删除项目的问题.我很高兴插入,但更新和删除无法搞清楚.

假设我有3个表和3个匹配的dto类

  1. ClassRoom表

       ClassID-ClassName 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 学生表

       StudentID-StudentName
    
    Run Code Online (Sandbox Code Playgroud)
  3. StudentClass表

       StudentID-ClassID
    
    
    ///Happy all works I am using existing students to populate the class. Fine.
    private void InsertClassRoom(ClassRoomDto classRoomDto)
    {
        using (var ctx = new TrainingContext())
        {
            //Convert dto to Entity
            var classRoomEntity = new ClassRoom { ClassID = classRoomDto.ClassId, ClassName = classRoomDto.ClassName };
            foreach (var studentInClass in classRoomDto.Students)
            {
                Student student = ctx.Students.Where(x => x.StudentID == studentInClass.StudentId).SingleOrDefault();
                classRoomEntity.Students.Add(student);
            }
            ctx.AddToClassRooms(classRoomEntity);
            ctx.SaveChanges();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

但我有2个场景无法弄清楚该怎么做.

  1. 更新教室名称
  2. 加1名学生
  3. 更新1名学生的姓名

从班级中删除学生.
我该怎么做?

这是我尝试更新:

private void UpdateClassRoom(ClassRoomDto …
Run Code Online (Sandbox Code Playgroud)

entity entity-framework-4

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