在下一段代码中是否有办法只获得第一条记录?
Dal.TreeHtmlExportsCollection treeHtmlExportsCollection =
new Dal.TreeHtmlExportsCollection().Where(Dal.TreeHtmlExports.Columns.TreeId, treeId).
OrderByDesc(Dal.TreeHtmlExports.Columns.DateCreated).Load();
Run Code Online (Sandbox Code Playgroud) 我现在正在玩SubSonic 3.0,它看起来非常简单(除了我还需要在SimpleRepository和ActiveRecord之间做出决定,但这是另一个故事).
但是,由于文档有点稀疏,我不确定它是否支持外部关系和延迟加载.基本上,我有一个课程发布:
public class Posting {
[SubSonicPrimaryKey]
public Guid InternalId { get; set; }
public string Title { get; set; }
public string Body { get; set; }
public DateTime? PostingDate { get; set; }
public List<Comment> Comments { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和一个评论:
public class Comment
{
public string Body { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如您所见,Posting有一个评论列表.我能以某种方式告诉SubSonic这两者是否相关?那就是我保存帖子时可以自动保存所有评论?更重要的是,当我加载一个帖子时,我希望评论列表最初是空的,并且在某些时候说"好的,请立即填充".
我知道我可以在Code中手动管理它,但我想知道SubSonic是否可以在我做手动工作之前做到这一点.
我目前正在遇到这里提到的问题(以及其他几个地方):Subsonic 3 Linq Projection Issue
这是使用3.0.0.4发行包发生的,当我从GitHub获取最新版本并构建它时也会发生这种情况.
我正在使用LINQ模板.
我有这个代码:
var newModel = new ViewModels.HomeIndexViewModel() {
PulseListViewModel =
new ViewModels.PulseListViewModel
{
Pulses = from p in _pulseQuery
join a in _accountQuery on p.AccountId equals a.AccountId
orderby p.CreateDate descending
select new PulseListViewModel.Pulse()
{
AccountName = a.Name
, Category = p.Category
, CreateDate = p.CreateDate
, Link = p.Link
, Message = p.Message
, Source = p.Source
, Title = p.Title
}
}
};
Run Code Online (Sandbox Code Playgroud)
但AccountName始终为null.
如果我将AccountName更改为Name:
var newModel = new ViewModels.HomeIndexViewModel() {
PulseListViewModel …
Run Code Online (Sandbox Code Playgroud) 我得到的错误似乎来自Structs.tt文件.我正在使用Northwind数据库,只使用Products表(我排除了所有其他表).我返回Json(Product.All()).
这是错误:
序列化"SubSonic.Schema.DatabaseColumn"类型的对象时检测到循环引用.这是堆栈跟踪:
用户代码未处理System.InvalidOperationException消息="序列化'SubSonic.Schema.DatabaseColumn'类型的对象时检测到循环引用." Source ="System.Web.Extensions"StackTrace:位于System.Web.Script.Serialization.JavaScriptSerializer的System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat). System.Web上的System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)中的SerializeValue(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat). System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue中的Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat )在System.Web.Script.Serialization.JavaScriptSeri中 系统中的System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)中的alizer.SerializeCustomObject(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat). System.Web.Script.Serialization.JavaScriptSerializer.SerializeEnumerable中的Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)(IEnumerable enumerable,StringBuilder sb,Int32 depth,Hashtable objectsInUse, SerializationFormat serializationFormat)在System.Web.Script.Serialization.JavaScriptSerializer.SerializeVialue的System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)中,对象o,StringBuilder sb, Int32深度,Hashtable 在System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o,StringBuilder)中的System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)中的objectsInUse,SerializationFormat serializationFormat) System.Web.Script.Serialization.JavaScriptSerializer上的System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)中的sb,Int32 depth,Hashtable objectsInUse,SerializationFormat …
可以混合它们吗?我问,因为我有一个使用Subsonic 2.x生成的类(在编译的dll中)的大项目,但是想开始使用3.x来获取新东西.
我昨晚尝试了一个项目,其中我引用了subsonic.dll和subsonic.core.dll,但是它不能用于模糊引用等等.所以删除了2.x然后我的旧编译亚音速问题生成的类,他们需要Subsonic 2.1才能运行.
我正在构建一个运行良好几个小时的站点,但随后*.asmx和*.ashx调用开始超时.
例外情况是:"超时已到期.从池中获取连接之前已经过了超时时间这可能已经发生,因为所有池连接都在使用中并且达到了最大池大小."
我正在使用SubSonic作为ORM.
我怀疑问题是基于每隔几分钟运行一次的计划任务并命中数据库.当我查看SQL Server 2000的"当前活动"时,我看到有:
100个进程来自应用程序".Net SqlClient Data Provider",命令是"AWAITING COMMAND".
所以我猜这就是问题所在..但是我该如何排除故障呢?这听起来像db中的死锁条件吗?只要我
c:\> iisrestart
,一切都很好(一段时间).
谢谢 - 我从来没有遇到过这样的事情,我不确定最好的办法.
迈克尔
我正在连接我的第一个SubSonic 3应用程序(在ASP.NET MVC 1.0前端),我正在看Rob的SimpleRepository.我正在使用Castle.Windsor作为注入框架.
在我的应用程序启动中,我将Castle配置为将SubSonic SimpleRepository绑定到SubSonic IRepository.没有什么复杂的.但是,SimpleRepository有一个ctor重载,它带有两个值:连接字符串名称和一组SimpleRepositoryOptions.过去没有深入挖掘Castle,不清楚是否有办法通过配置(或其他方法)指定ctor参数.
现在,我有一个SimpleRepository的自定义实现,它在它的无参数ctor中显式创建了一个带有这些参数的SimpleRepository,但是如果我想在任何时候更改它们,它需要更改代码并重新编译.
是否有一种更优雅的方式来配置Castle以获取构造函数参数?
格式化程序尝试反序列化消息时引发了异常:
尝试反序列化参数http://tempuri.org/:GetPatientInsuranceInformationResult时发生错误 。设置InnerException消息是“在线错误1个位置1604元素” http://schemas.datacontract.org/2004/07/SubSonic:_currentValue “包含的数据” http://schemas.datacontract.org/2004/07 / System:DBNull '数据协定。解串器不知道任何映射到该合同的类型。将与“ DBNull”相对应的类型添加到已知类型的列表中,例如,通过使用KnownTypeAttribute属性或将其添加到传递给DataContractSerializer的已知类型的列表中。请参阅InnerException了解更多详细信息
我的WCF服务功能
public PatientInsurance GetPatientInsuranceInformation(int PatientKey)
{
PatientInsurance col = new PatientInsurance();
if (PatientKey > 0)
{
Query qry = new Query(PatientInsurance.Schema.TableName).WHERE(PatientInsurance.Columns.Deleted, false).AND(PatientInsurance.Columns.PatientKey, PatientKey);
col.LoadAndCloseReader(qry.ExecuteReader());
}
return col;
}
Run Code Online (Sandbox Code Playgroud)
总是由subsonic.and生成的类。我在业务逻辑中编写了部分类,如下所示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace PatientPortal.Model.Data
{
[KnownType(typeof(System.DBNull))]
[XmlInclude(typeof(DBNull))]
[KnownType(typeof(PatientInsurance))]
public partial class PatientInsurance
{
public string InsuranceTypeText
{
get
{
string insuranceTypeText = "";
//if (!string.IsNullOrEmpty(Convert.ToString(this.InsuranceType)))
//{
// …
Run Code Online (Sandbox Code Playgroud) subsonic ×10
subsonic3 ×5
c# ×3
.net ×2
asp.net ×1
asp.net-mvc ×1
collections ×1
dynamic-data ×1
linq ×1
orm ×1
projection ×1
sql-server ×1
t4 ×1
timeout ×1
vb.net ×1
wcf ×1