我们有一个简单的LINQ-to-Entities查询,它应该从特定页面返回特定数量的元素.请求的示例可以是:
var query = from r in records
orderby r.createdDate descending
select new MyObject()
{ ... };
//Parameters: pageId = 8, countPerPage = 10
List<MyObject> list = query.Skip(pageId * countPerPage).Take(countPerPage);
Run Code Online (Sandbox Code Playgroud)
上面的示例在大多数情况下都很有效,但有时候列表中有10个以上的元素.这似乎并不总是正确的,取决于数据库数据.例如,当我们请求页面10并将countPerPage作为10时,我们得到10个元素.但是当我们请求页面12并将countPerPage传递为10时,我们得到了11个元素.然后,当我们要求第21页时,我们再次获得10个元素.
这有什么可能的原因吗?
更新:查询,当然,并不像在示例中那么简单,并包含子查询.
这是一个更完整的例子:
var elementsQuery = from m in entityContext.elements
where m.elementSearchText.Contains(filter)
orderby m.CreatedDate descending
select new DataContracts.ElementForWeb()
{
FirstName = m.FirstName,
LastName = m.LastName,
Photos = (from p in m.Photos select p.ID),
PlacesCount = m.Childs.Where(x => x.Place != null).Count() + ((m.MainChild != null)?1:0),
SubElements = (
from t …Run Code Online (Sandbox Code Playgroud) 我们有一个过程需要检查特定用户是否是本地Administrators组的成员.
检查的代码如下所示:
using (PrincipalContext context = new PrincipalContext(ContextType.Machine, null))
{
UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, sUserName);
if (user != null)
{
SecurityIdentifier adminsGroupSID = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
GroupPrincipal group = GroupPrincipal.FindByIdentity(context, IdentityType.Sid, adminsGroupSID.Value);
if (group != null)
{
if (user.IsMemberOf(group))
return 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当该组具有已删除的帐户(例如域帐户)时,我们将获得PrincipalOperationException和消息"枚举组成员身份时发生错误(1332).该成员的SID无法解析."
有没有办法克服这个问题没有:a)从组中手动删除孤立的SID b)不忽略它?
谢谢
我们有以下代码:
private void MainForm_Shown(object sender, EventArgs e)
{
RepositionForm();
}
private void RepositionForm()
{
Rectangle rect = Screen.PrimaryScreen.WorkingArea;
this.Width = 100;
this.Height = 117;
this.TopMost = true;
this.Left = rect.Width - this.Width - 1;
this.Top = rect.Height - this.Height - 1;
}
Run Code Online (Sandbox Code Playgroud)
当我们从Visual Studio启动应用程序时 - 表单显示正确的大小:100x117.但是,当我们通过启动EXE文件启动项目时,表单大小为106x127.
The MinimumSize, MaximumSize and Size properties are set to 100x117.
WindowsState = Minimized
ShowIcon = False
ShowInTaskbar = False
Topmost = True
MinimizeBox - False
MaximizeBox = False
FormBorderSize = FixedDialog
ControlBox = True …Run Code Online (Sandbox Code Playgroud) 问题是 - 有没有办法以命令样式格式导出OrientDB数据库结构,如:
create database <name>
create class <name>
create property <name>...
Run Code Online (Sandbox Code Playgroud)
等等
谢谢,丹尼斯
我们遇到了这个问题,我认为这个问题应该很容易解决,但不确定如何解决.我们有Windows 2003 Server和Classic ASP应用程序.MSAccess数据库用于数据存储.
该应用程序的设计方式包含很多.
.asp页面可能会打开数据库连接并在页面末尾将其关闭.同时,页面上包含的包含也可以打开相同的数据库.
问题是在第二次打开时我们收到错误:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Could not use '(unknown)'; file already in use
Run Code Online (Sandbox Code Playgroud)
这仅限于我们的本地配置 - 我们不拥有该项目,但正在帮助客户修复某些项目.在客户方面,一切都很完美.当我们设置对数据库的只读访问时,不会显示此错误.因此,似乎ADODB.Connection以独占模式打开数据库.
任何人都有任何想法如何解决这个问题?
谢谢
我们使用WiX构建了产品安装.它需要在服务器上执行,并且由于其性质,需要创建用户并分配此用户特定权限(例如,作为服务执行)为此我们使用我们自己的自定义操作,这些操作在基于C#的自定义操作库中定义.
当我们由具有管理权限但在Windows 2008上不是管理员的用户开始安装时,系统不会要求我们确认是否要执行此应用程序(不显示UAC对话框).因此,所有这些操作都会失败,因为MSI似乎在没有管理权限的情况下运行.我们无法延迟操作,因为其中一些操作需要在UI序列中执行,需要标记为"立即".
我们如何将安装程序标记为需要管理权限的安装程序?我们尝试了WiX属性InstallPrivileges ='elevated',但是文档说它是默认设置的,并没有任何区别.
谢谢