我有4个SQL Server 2005数据库,我想转移到SQL CE.我知道我不能保留SProcs,视图和函数(SQL Server Compact和SQL Server之间的差异),但我想保留其他所有内容.
我已经尝试过这个应用程序,SQL Server到SQL Server Compact Edition数据库副本,但它出错了我.我有源,我正在调查它,但我想我会检查并确保我没有使我的ACTUAL目标的解决方案复杂化.
是否有一种简单的,可以一次性的方式将标准SQL转换.mdf为SQL CE .sdf?
现在我最好的想法是从SQL 2005 Standard中将Replication设置为SQL CE.
我将构建一个内部的,偶尔连接的应用程序(OCA).你建议我采用什么技术?
这是我的参数:
我正在寻找有关选择路径的具体建议.合并复制或Sync Framework数据库同步提供程序?订阅服务器上的SQL Express或SQL CE?我可以为DAL使用LINQ to SQL吗?
是Silverlight'离线/退出浏览器应用' 示例在这里,可行吗?
这是我的第一个LARGE商业应用程序,因此欢迎任何经验丰富的评论.
根据要求,这里有一些关于数据类型的附加信息.我的用户是护士和社会工作者,他们去会员家中为他们创建"计划"或"健康评估评论".这些是药物清单或当前"提供者"列表.实现成员目标的步骤或当前/过去诊断的列表.像这样的东西.
还有典型的会员姓名,地址,电话号码等.这主要是一个便于报告的数据存储和检索应用程序.很少"处理"发生,护士和社会工作者在指定成员的团队中工作,所以我通常几乎没有交叉或潜在的数据冲突.护士和SW也负责MCP的不同领域(会员中心计划)
附加问题; 如果我可以使用SQL 2008,Sync Framework真的只是一个可行的选择吗?似乎是由于变化跟踪等等......思想?
我必须低于2个LINQ语句.它们都返回(看似)相同的结果集.任何人都可以向我解释为什么我应该使用一种方式与另一种方式?它就像"你说土豆,我说土豆;你说番茄,我说番茄"一样简单吗?
以下是LINQ的两种风格 - >
1)以下两个lets是私有方法,它们获取一个ID并返回NAME.
var business = from businesse in context.tblBusinesses
where businesse.BusinessID == businessID
join addresse in context.tblAddresses on businesse.BusinessID equals addresse.BusinessID
let stateName = GetStateNameByID(addresse.StateID)
let countyName = GetCountyNameByID(addresse.CountyID)
select new
{
businesse.BusinessName,
businesse.ContactName,
businesse.EmailAddress,
addresse.AddressLine1,
addresse.AddressLine2,
addresse.AddressLine3,
addresse.CityName,
State = stateName,
addresse.ZipCode,
addresse.ZipPlus,
County = countyName
};
Run Code Online (Sandbox Code Playgroud)
2)
var query = from businesse in context.tblBusinesses
where businesse.BusinessID == businessID
select new
{
businesse.BusinessName,
businesse.ContactName,
businesse.EmailAddress,
Address = from addresse in businesse.tblAddresses
select …Run Code Online (Sandbox Code Playgroud) 要明确的是,我并没有要求进行并列比较,这已经被问到Ad Nauseum在这里.我也不是在问Linq2Sql是不是死了,因为我不在乎.我要问的是......
我正在为非营利组织构建内部应用程序.我是员工中唯一的开发人员.我们总是使用SQL Server作为我们的数据库后端.我也设计和构建了数据库.我已经成功使用过几次L2S了.
考虑到所有这些因素,有人能给我一个令人信服的理由来使用EF代替L2S吗?
我本周末去了Code Camp,经过一个小时的EF演示,所有这些我都可以在L2S中完成,我问了同样的问题.发言人的回答是,"L2S已经死了......"很好!不!(见这里)
我理解EF是我们将来要使用的MS(见这里),它提供了更多的自定义选项.我无法弄清楚的是,在这种环境中,如果有任何应该或对我来说是重要的.
我们在这里遇到的一个特殊问题是我继承了基于4个不同SQL数据库构建的核心应用程序.L2S在这方面遇到了很大的困难,但当我问上述发言人是否EF会在这方面帮助我时,他说"不!"
我需要一种方法让我的.Net Winform应用程序检测我的应用程序是否在笔记本电脑或工作站上打开.
我已经看过Environment并SystemInformation,但无济于事.会WMI做的伎俩?
谢谢你的方向....
根据要求,我有一个使用合并复制的应用程序,允许我们的用户在会员家中工作.一些使用该程序的人永远不会进入现场,因此只有塔.这是一个仅限工作的应用程序,因此我们的系统在某种程 如同在台式机上没有UPS,也没有笔记本电脑CPU.
我已经设置了我的DAL,以便能够在本地SQL和中央SQL Server之间切换设置.我希望能够根据系统自动设置它.
如果是笔记本电脑那么他们应该指向一个塔,如果一个塔,集中.
这有帮助吗?我故意把它关掉,以免弄乱答案.对于为完成相反的道歉而道歉.
我有一个使用LinqToSQL的小winapp,因为它是DAL.我正在为给定的人创建所有CaseNotes的摘要视图,其中一个字段是Details框.我只需要将该列的前50个字符返回到我的treeview函数.
有关我如何做到这一点的任何提示?下面是我的TreeView函数如何获取其数据以供显示,而ContactDetails是相关列.
public static DataTable GetTreeViewCNotes(int personID)
{
var context = new MATRIXDataContext();
var caseNotesTree = from cn in context.tblCaseNotes
where cn.PersonID == personID
orderby cn.ContactDate
select new { cn.CaseNoteID,cn.ContactDate, cn.ParentNote, cn.IsCaseLog, cn.ContactDetails };
var dataTable = caseNotesTree.CopyLinqToDataTable();
context.Dispose();
return dataTable;
}
Run Code Online (Sandbox Code Playgroud)
我在这里发布这个,以防任何未来的搜索者想知道问题上下文中的解决方案是什么样的.
public static DataTable GetTreeViewCNotes(int personID)
{
DataTable dataTable;
using (var context = new MATRIXDataContext())
{
var caseNotesTree = from cn in context.tblCaseNotes
where cn.PersonID == personID
orderby cn.ContactDate
select new
{
cn.CaseNoteID,
cn.ContactDate,
cn.ParentNote,
cn.IsCaseLog,
ContactDetailsPreview …Run Code Online (Sandbox Code Playgroud) 我有一个数据库是合并复制方案的一部分,它具有GUID,因为它是PK.具体来说,数据类型是uniqueidentifier,默认值( newsequentialid ()),RowGUID设置为Yes.当我执行InsertOnSubmit(CaseNote)时,我认为我可以单独留下CaseNoteID,并且数据库将输入下一个Sequential GUID,就像在MSSMS中手动输入新行一样.相反,它发送00000000-0000-0000-0000-000000000000.如果我添加CaseNoteID = Guid.NewGuid(),我得到一个GUID但不是一个顺序(我很确定).
有没有办法让SQL在LINQ InsertOnSubmit()上创建下一个顺序id?
以下是我用于将新记录插入数据库的代码.
CaseNote caseNote = new CaseNote
{
CaseNoteID = Guid.NewGuid(),
TimeSpentUnits = Convert.ToDecimal(tbxTimeSpentUnits.Text),
IsCaseLog = chkIsCaseLog.Checked,
ContactDate = Convert.ToDateTime(datContactDate.Text),
ContactDetails = memContactDetails.Text
};
caseNotesDB.CaseNotes.InsertOnSubmit(caseNote);
caseNotesDB.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
基于以下建议之一,我在该列的LINQ中启用了自动生成,现在我收到以下错误 - > 如果语句包含没有INTO子句的OUTPUT子句,则DML语句的目标表不能具有任何已启用的触发器. 想法?
我有以下代码行
if (DBNull.Value.Equals(o) || o != null)
Run Code Online (Sandbox Code Playgroud)
这里o是object o in row.ItemArray 我不断收到的错误- >
Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".
我不明白的是,当我单步执行我的代码时,if应该抓住这个并执行我的替代操作,但事实并非如此?
有人可以为我解释一下.
谢谢!
我试图了解Enums一般的一些事情以及它们如何与之合作Chars.以下是我工作的例子:
public enum AuditInteractionTypes
{
Authorized = 'A',
Created = 'C',
Revised = 'R',
Extracted = 'E',
Deleted = 'D'
}
Run Code Online (Sandbox Code Playgroud)
首先,什么是宣布他们之间的差异enum AuditInteractionTypes或enum AuditInteractionTypes : char
其次,我看过很多关于尝试使用的帖子Enums,chars以及如何"让"它来回运作.可能是愚蠢的问题,但为什么我不能简单地来回走动string.
所以,例如,Authorized = "A".
我使用Linq To SQL作为我的DAL,如果这很重要,我希望,这是一个更广泛的问题,不是特定于我的环境.
我试图截断一个长字符串只在我的索引页面上显示.它显示如下:
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
Run Code Online (Sandbox Code Playgroud)
描述可以是500个字符长,但我不能在该网格布局上显示那么多.我只想显示前25个,因为他们可以在详细信息页面上看到所有这些,但我似乎无法让它在模型级别截断它.
像这样的东西会很好:
@Html.DisplayFor(modelItem => item.Description.Take(25))
@Html.DisplayFor(modelItem => item.Description.Substring(0,25)
Run Code Online (Sandbox Code Playgroud)
编辑
当我尝试任一方法时,我在运行时遇到以下异常.
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Run Code Online (Sandbox Code Playgroud) .net ×7
c# ×7
linq-to-sql ×3
linq ×2
winforms ×2
asp.net-mvc ×1
dbnull ×1
enums ×1
guid ×1
migration ×1
null ×1
object ×1
replication ×1
sql-server ×1
system ×1