我有以下场景.我们使用存储过程来访问数据库,我们使用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) 我对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) 我需要得到我的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) 我有以下脚本将一些东西发布到服务器并将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中我没有得到链接,它将链接视为常规文本.我会再尖叫一下,希望有人能告诉我为什么当我从尖叫中回来时它不起作用.