小编Dan*_* T.的帖子

在数据库中建模抽象基类和子类

我有4个亚类:Video,Image,Note,和Form.每个包含不同类型的数据.例如,Image该类包含磁盘和图像属性上的图像文件的路径,Form该类包含表单字段值.但是,每个项目之间的共同元素是GPS坐标和标题,因此我有以下抽象基类:

public abstract class Content
{
    public float? Latitude { get; set; }
    public float? Longitude { get; set; }
    public float? Heading { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,我朦胧的地方是如何在数据库中建模.目前,我有一个名为表Events(例如起见,假设一个事件是党的生日)和4个表(Videos,Images,Notes,和Forms).每个表都有一个链接回Events"主键"的外键.

使用LINQ-to-SQL,我为每个表获得5个类.例如Event.Images,如果我只想要一种类型的数据,这很好,但我想要做的是计算'内容'的总数Event并得到GPS坐标.我可以通过使用来轻松计算计数Event.Images.Count() + Event.Videos.Count() + ...,但我不能对GPS坐标做同样的事情.有没有什么方法可以建模数据库,以便我可以为每个项目使用基类,并且当我需要查看其数据时仍然能够获得单独的强类型项目?

database-design abstract-class linq-to-sql

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

如何在ExtJS中重用组件?

我有一个像这样的ExtJS网格:

var grid = new Ext.grid.GridPanel({
    ...
});
Run Code Online (Sandbox Code Playgroud)

我希望能够重新使用这个网格,这样我就可以拥有它的多个实例,它们都是独立运行的.唯一的方法是通过使用Ext.extend,还是有另一种方式?我真的不需要扩展它,我只需要能够创建它的多个实例.

javascript extjs

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

ROT13算法有哪些实际应用?

ROT13算法有哪些实际应用?由于它不能用于加密,我见过它的唯一用法涉及扰乱破坏者或问题的答案.是否还有其他更实际和有用的案例使用ROT13?

algorithm rot13

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

LINQ PredicateBuilder 多个 OR 以 PredicateBuilder.True<> 开头

我有一个这样的实体:

public class Product()
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想在Name属性上搜索关键字,以便对它们进行 OR 运算。换句话说,搜索:

勺子刀叉

将在物业中寻找勺子 刀子 叉子Name。我为PredicateBuilderon引入了一种新方法,Product如下所示:

public static Expression<Func<Product, bool>> ContainsKeywords(params string[] keywords)
{
    var predicate = PredicateBuilder.True<Product>();

    foreach (var keyword in keywords)
    {
        var temp = keyword;
        predicate = predicate.Or(x => x.Name.Contains(temp));
    }

    return predicate;
}
Run Code Online (Sandbox Code Playgroud)

我在我的 Web 服务方法之一中像这样使用它:

var keywords = Request.QueryString["q"].Split(' ');
var products = Repo.GetAll<Product>(); // get all the products from …
Run Code Online (Sandbox Code Playgroud)

c# linq filter where-clause predicatebuilder

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

如何使用ColdFusion ORM映射基类?

我有两个组件,一个基本Entity组件:

<cfcomponent persistent="true">
    <cfproperty name="Id" fieldtype="id" generator="native">
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

以及Client扩展它的组件:

<cfcomponent persistent="true" extends="Entity">
    <cfproperty name="FirstName">
    <cfproperty name="LastName">
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试创建一个实例时Client,我得到一个错误,表明它们被映射为两个不同的表.我知道Hibernate有能力忽略基类,但是我如何使用ColdFusion的标签来做,或者我是否必须回归到这个功能的HBM映射?

附录:删除persistent="true"from Entity也不起作用,如果我这样做,Client就好像它没有Id属性一样.

nhibernate coldfusion orm hibernate coldfusion-9

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

使用ColdFusion Model-Glue,如何在登录后将用户重定向回其请求的页面?

我有一个安全的事件类型,它将检查用户是否已登录,如果不是,则将它们重定向到登录页面:

<event-types>
    <event-type name="securedPage">
        <before>
            <broadcasts>
                <message name="CheckLogin"/>
            </broadcasts>
        </before>
        <results>
            <result name="NeedLogin" do="page.login" redirect="true"/>
        </results>
    </event-type>
</event-types>
Run Code Online (Sandbox Code Playgroud)

登录页面有一个链接到action.login事件处理程序的表单,如果登录成功,它将重定向到用户的主页,如果不是,则重新显示登录页面:

<event-handler name="action.login">
    <broadcasts>
        <message name="Login"/>
    </broadcasts>
    <results>
        <result name="LoggedIn" do="page.user.home" redirect="true"/>
        <result name="NotLoggedIn" do="page.login"/>
    </results>
</event-handler>
Run Code Online (Sandbox Code Playgroud)

这段代码效果很好,但我现在遇到的问题是它总是会重定向到用户的主页,即使他们请求了另一个页面.由于表单发布到action.login事件,并且结果do是硬编码的page.user.home,我如何修改我的代码以跟踪用户最初请求的页面并将其重定向到那里?

coldfusion redirect model-glue coldfusion-9

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

从ASP.NET中的代码隐藏文件设置iframe的src的最佳方法是什么?

我有一个iframe,它具有基于Web API调用结果的动态URL.在aspx页面中设置src的最佳方法是什么?以下是iframe的示例:

<iframe id="dynamicframe" runat="server"></iframe>
Run Code Online (Sandbox Code Playgroud)

我应该直接在代码隐藏中设置它,如下所示:

dynamicframe.Attributes["src"] = "http://dynamicurl.com";
Run Code Online (Sandbox Code Playgroud)

或者我应该在代码隐藏中创建一个属性并在iframe中引用它:

<iframe id="dynamicframe" src="<%= dynamicFrameUrl %>"></iframe>
Run Code Online (Sandbox Code Playgroud)

或者其他一些方法呢?

asp.net iframe webforms code-behind

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

ASP.NET CodeFileBaseClass 属性与从 System.Web.UI.Page 继承

我刚刚通过继承为我的页面创建了一个基类System.Web.UI.Page

public abstract class PageBase : System.Web.UI.Page
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我注意到您还可以在 ASP.NET 视图中声明一个基页时:

<%@ Page Language="C#" CodeFileBaseClass="PageBase.cs" CodeFile="page.aspx.cs"
    Inherits="page" %>
Run Code Online (Sandbox Code Playgroud)

有人可以解释这两种方法的优缺点吗?你什么时候会使用一个而不是另一个,或者它们都是一样的?如果同时使用两者会怎样?

asp.net inheritance base-class

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

如何配置log4net SmtpAppender以仅在达到某个级别时向我发送电子邮件?

我正在尝试配置一个log4net SmtpAppender,这样我只会在遇到某个日志级别时收到一封电子邮件,但是包含所有级别的最后10行.这是我的配置:

<appender name="EmailAppender" type="SmtpSubjectLayoutAppender">

  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="WARN"/>
  </evaluator>

  <bufferSize value="10" />
  <lossy value="false" />

  ...
</appender>
Run Code Online (Sandbox Code Playgroud)

我用这段代码练习它:

for (var i = 1; i <= 30; i++)
{
    logger.Info("This is just a test message " + i);
}

logger.Error("Error message");
Run Code Online (Sandbox Code Playgroud)

问题是我最终收到3封电子邮件,其中2封包含所有INFO日志记录,另一封包含最后几行之前发生的邮件ERROR:

[2012-07-27 18:59:55.657][INFO ][Chase][tid=14972] This is just a test message 23
[2012-07-27 18:59:55.659][INFO ][Chase][tid=14972] This is just a test message 24
[2012-07-27 18:59:55.661][INFO ][Chase][tid=14972] This is just a test message 25
[2012-07-27 18:59:55.662][INFO …
Run Code Online (Sandbox Code Playgroud)

logging log4net log4j

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

如何在同步代码中使用await/async?

我正在尝试使用await/async以使某些同步代码异步.例如,这可以解除UI线程的阻塞:

private async void button1_Click(object sender, EventArgs e)
{
    var task = DoRequestAsync();
    textBox1.Text = "starting async task";
    var text = await task;
    textBox1.Text = text;
}

private async Task<string> DoRequestAsync()
{
    try
    {
        var client = new HttpClient();
        client.Timeout = new TimeSpan(0, 0, 0, 5);
        await client.GetAsync("http://123.123.123.123"); // force a timeout exception
    }
    catch (Exception e)
    {
    }

    return "done!";
}
Run Code Online (Sandbox Code Playgroud)

但这不会,并将挂起UI线程:

private async void button1_Click(object sender, EventArgs e)
{
    var task = DoRequestAsync();
    textBox1.Text = "starting async task"; …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous winforms async-await

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