- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一些独特的数据库结构,但我想我尝试做的查询并没有太不寻常。
基本上,我创造了一个新记录。然后,我保存这条记录,然后更新一些 XML,然后用新的 XML 更新记录。我遇到的问题是第二次保存没有做任何事情。
var applicant = new Applicant();
applicant.XmlData = "";
applicant.Save(); //save once and initiate the record
data.RecordRID = applicant.ApplicantRID;
applicant.XmlData = data.SerializeToXml();
var c=applicant.GetDirtyColumns().Count; //this returns a count of 0
applicant.Save(); //save twice to populate RecordRID
此外,作为引用,生成的 XmlData
属性如下所示:
public string XmlData
{
get { return _XmlData; }
set
{
if(_XmlData!=value){
_XmlData=value;
var col=tbl.Columns.SingleOrDefault(x=>x.Name=="XmlData");
if(col!=null){
if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ //_isLoaded is never set to true for either saves
_dirtyColumns.Add(col);
}
}
OnChanged();
}
}
}
所以.. 问题是什么?我是否需要运行查询并从数据库中获取对象然后更新它?还是我错过了什么?
注意:我必须保存两次,因为 ApplicantRID 是一个唯一的主键。所以我必须插入一条记录才能知道它是什么
最佳答案
我最终修改了 SubSonic 的 T4 模板来解决这个问题。
在函数 void Add(IDataProvider)
下的 ActiveRecord.tt 大约第 466 行:
var key=KeyValue();
if(key==null){
var newKey=_repo.Add(this,provider);
this.SetKeyValue(newKey);
}else{
_repo.Add(this,provider);
}
SetIsNew(false);
SetIsLoaded(true); //Added this line
OnSaved();
我没有注意到这个变化有任何奇怪之处,它似乎是一个错误,它并没有像现在这样存在。
关于c# - SubSonic 不会使用 ActiveRecord 保存更新的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206607/
我有一个 SQL Server 函数,它返回一个标量 BIT 值并采用一个参数。下面给你一个想法: CREATE FUNCTION dbo.[fnTest] (@StringToTest VARCHA
我知道这个问题看起来很主观,但它真的很简单。作为 SubSonic 的长期用户和兼职贡献者,我对社区认为改进它的最佳方法很感兴趣。 那么你有什么看法,你会如何让 SubSonic 变得更好?哪一件事会
编辑:现在有一个 doc page在这一点上,这个问题是无关紧要的,也已经过时了。阅读文档而不是这个问题。 我已经玩了一个月左右的 SubSonic 3 代码生成,我很想从其他人那里得到一些关于他们使
我正在试用新的 SubSonic 3 预览版,但我不确定我应该在我的 MVC 项目中用于基本 CRUD 操作的模式。 我试图在我的模型中保留尽可能多的数据逻辑,所以我向每个模型的部分类添加了一些静态
我一直在探索 Sub Sonic 3 的 SimpleRepository 并且对它非常满意,但对交易有疑问。我知道使用像“AddMany”和“DeleteMany”这样的方法将在单个事务中自动执行所
我正在使用 Subsonic 的 SimpleRepository,我正在尝试编写一些单元测试,这样它们就不会触及数据库,但我无法弄清楚 SimpleRepository 是否可以针对内存列表工作(比
有人在 Mono 上部署过 SubSonic 吗? 最佳答案 可能是用户 - 在问题的混合中,有人说他在单声道下运行它以及您需要采取的步骤 http://forums.subsonicproject.
我想添加基本日志记录并对 SubSonic 2.1 生成的类进行一些其他细微更改(我没有使用 SubSonic 3.0 t4 模板)。 有没有办法在不修改 SubSonic 源代码的情况下做到这一点?
我一直在使用 SubSonic.Query,直到有一天我不能通过添加 WHERE 来做“IS NULL”,然后我意识到 SubSonic.SqlQuery 存在并且它有一个函数“IsNull()” ”
最新版本的 Subsonic 是否与 Visual Studio 2010/.Net 4.0 兼容? 最佳答案 我已经在 Visual Studio 2010 和 .net 4 的测试版中使用了版本
有什么方法可以在 SubSonic 3.0 中访问我的 SQL View ?代码生成似乎完全跳过了 View 最佳答案 在项目中包含 View 只需打开 SQLServer.ttinclude 查找加
我想在我的项目中使用 subsonic 3.0 SimpleRepository,但是有一个问题: 如果我的表名像 产品 等然后我无法从数据库中获取任何数据, 因为 subsonic 会生成像“Sel
保存记录后如何立即获取记录 ID(主键)?我有自动生成的 ID 列。在保存该对象之前,我需要将 ID 作为“外键”传递给另一个对象。 目前我这样做 Product.Save() 我不能吗 int id
最新版本的 Subsonic 是否与 Visual Studio 2010/.Net 4.0 兼容? 最佳答案 是的,Subsonic 3 在 .NET 4 中应该可以正常工作。我正在使用 Subso
我正在使用 SubSonic 2.2 和 sqlite,在处理具有非 AUTOINCREMENT 的 INTEGER PRIMARY KEY 列的表时遇到了问题。根据faq : If you decl
我已经使用 SS2.1 有一段时间了,并且非常喜欢它。然而,我注意到 2.2 已经发布了,所以我认为最好升级。将 2.2 放入我的 bin 文件夹后,它不再从 MySQL 构建与 v2.1 完美配合的
我们有某些表,其中有多个列共同构成主键。 当 SubSonic 为具有多列的表生成所有它的类时,仍有一些方法,如 FetchByID,只使用一个值作为主键。 因此,外键属性将返回错误的项目。例如,我们
我有一个名为“用户”的表,它有一个名为“已删除”的列,一个 bool 值表示用户已从系统中“删除”(当然,没有实际删除它)。 我也有很多表对 Users.user_id 列有 FK。 Subsonic
我对使用 SubSonic 真的很感兴趣,我已经下载了它,到目前为止我很享受,但是查看 github 和 googlegroups 上的事件,它似乎不是很活跃,看起来很像一个正在消亡的项目. tekp
我的网站正在使用 Subsonic 2.2。 我遇到了一种奇怪的情况,我需要运行一些临时 SQL 语句。 public IList GetDistincList(string TableName, s
我是一名优秀的程序员,十分优秀!