小编mhe*_*xon的帖子

MSBuild,自定义任务运行自定义工具生成linq到sql模型的类?

我有以下场景.我们使用存储过程来访问数据库,我们使用LiNQ 2 SQL生成类,或者我们使用Unplugged LINQ to SQL Generator.它已经作为自定义工具运行,但是对生成的类进行区分是一个巨大的痛苦.我们想自动生成类但是将它从版本控制中排除,所以我开始创建一个msbuild任务.发现这篇文章这篇文章,但我不能自己解决这个问题.我添加了一些代码,任务如下所示:

public class GenerateDesignerDC : Task
{
    public ITaskItem[] InputFiles { get; set; }
    public ITaskItem[] OutputFiles { get; set; }

    public override bool Execute()
    {
        var generatedFileNames = new List<string>();
        foreach (var task in InputFiles)
        {

            string inputFileName = task.ItemSpec;
            string outputFileName = Path.ChangeExtension(inputFileName, ".Designer.cs");
            string result;

            // Build code string
            var generator = new ULinqCodeGenerator("CSharp");
            string fileContent;
            using (FileStream fs = File.OpenRead(inputFileName))
            using (StreamReader rd = new …
Run Code Online (Sandbox Code Playgroud)

c# msbuild msbuild-task

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

如果先前违反了唯一约束,则NHibernate停止

我对NHibernate有一个小问题,我无法弄清楚为什么.每次我调试或分析应用程序时,我意外地违反了一个独特的约束条件,NHibernate就不会再运行多个查询(我将把异常堆栈跟踪留到最后).流程是这样的.一切正常,然后:

违反UNIQUE KEY约束'UQ__workday__572F4CF4753864A1'.无法在对象'dbo.workday'中插入重复键.该语句已终止.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Data.SqlClient.SqlException:违反UNIQUE KEY约束'UQ__workday__572F4CF4753864A1'.无法在对象'dbo.workday'中插入重复键.该声明已被终止.终止.

如果我现在尝试运行执行查询的相同代码:

var query1 = QueryOver.Of<Invoice>()
    .Fetch(x => x.Company).Eager
    .Fetch(x => x.Workdays).Eager
    .Where(x => x.Id == invoiceId);

var query2 = QueryOver.Of<Invoice>()
    .Fetch(x => x.Company).Eager
    .Fetch(x => x.Products).Eager
    .Where(x => x.Id == invoiceId);

var result = Session.CreateMultiCriteria()
    .Add(query1)
    .Add(query2)
    .List();

var invoice = ((IList) result[0])[0] as Invoice;

if (invoice != null) {
    invoice.CalculateTotals();
}

return invoice;
Run Code Online (Sandbox Code Playgroud)

该代码生成以下语句

SELECT this_.invoice_id         as invoice1_10_2_,
       this_.invoice_number     as invoice2_10_2_,
       this_.invoice_prefix     as invoice3_10_2_,
       this_.start_date         as start4_10_2_,
       this_.end_date           as end5_10_2_,
       this_.period             as period10_2_, …
Run Code Online (Sandbox Code Playgroud)

nhibernate

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

如何为各种构造函数执行Activator.CreateInstance?

我需要得到我的DataContext的子类,我找到了下面的函数,它位于某处,它确实找到了我的子类但我无法实例化它:(

  public static IEnumerable<T> GetSubclassesFor<T>(Assembly assembly)
  {
   return (assembly.GetTypes()
    .Where(t => t.BaseType == (typeof (T)))
    .Select(t => (T) Activator.CreateInstance(t, new object[] {"asdasd"})))
    .ToList();
  }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

System.Reflection.TargetInvocationException:ETT undantagsfel HARinträffat我MALET当EN aktivering.----> System.TypeInitializationException:TypinitierarenFÖRPlaynGO.Cashier.Data.CashierDCutlösteETT undantag.----> System.NullReferenceException:Objektreferensen har inte angetts直到en instans av ett objekt.vid System.RuntimeMethodHandle.InvokeConstructor(IRuntimeMethodInfo方法,对象[]指定参数时,REF SignatureStruct签名,RuntimeType declaringType)VID System.Reflection.RuntimeConstructorInfo.Invoke(的BindingFlags invokeAttr,粘结剂粘结剂,对象[]参数,CultureInfo的培养物)VID System.RuntimeType.CreateInstanceImpl(的BindingFlags bindingAttr,粘合剂粘合剂,对象[]指定参数时,CultureInfo的文化,对象[] activationAttributes)VID System.Activator.CreateInstance(类型类型,对象[]参数)VID PlaynGO.Dbml.Reflexion.b _3(T型)1 Reflexion.cs:线23 vid System.Linq.Enumerable.WhereSelectArrayIterator 2.MoveNext() vid System.Collections.Generic.List1..ctor(IEnumerable1 collection) vid System.Linq.Enumerable.ToList(IEnumerable1个源)VID PlaynGO.Dbml.Reflexion.GetInstances(大会组件)1 Reflexion.cs:线23个VID ​​PlaynGO.Dbml.UnitTests.TestReflection.TestGettingTypes()1 TestReflection.cs:线21个--TypeInitializationException VID PlaynGO.Cashier.Data .CashierDC..ctor(String connection) - nullReferenceException vid PlaynGO.Cashier.Data.CashierDC..cctor()

我想调用的构造函数如下:

    public CashierDC(string connection) : …
Run Code Online (Sandbox Code Playgroud)

c#

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

如何让jQuery在所有浏览器中都一样?

我有以下脚本将一些东西发布到服务器并将json结果写回用户浏览器.它没有按预期工作:(

$(document).ready(function () {
    $('#productForm').ajaxForm({
        dataType: 'json',
        success: function (response) {
            var tmp = '<tr>';
            tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'>Kasta</a></td>';
            tmp += '<td>' + response.Quantity + '</td>';
            tmp += '<td>' + response.UnitPrice + '</td>';
            tmp += '<td>' + response.ProfitRate + '</td>';
            tmp += '<td>' + response.Description + '</td>';
            tmp += '<td>' + response.Total + '</td>';
            tmp += '</tr>';
            $('#productsBody').append(tmp);
            alternateRows();
        },
        clearForm: true,
        resetForm: true,
        timeout: 3000
    });
}); 
Run Code Online (Sandbox Code Playgroud)

在firefox中一切都很好,在chrome中,新行根本没有显示,但是我的一些小区域会改变颜色.

在Internet Explorer 8中我没有得到链接,它将链接视为常规文本.我会再尖叫一下,希望有人能告诉我为什么当我从尖叫中回来时它不起作用.

jquery

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

标签 统计

c# ×2

jquery ×1

msbuild ×1

msbuild-task ×1

nhibernate ×1