我有这个使用QueryOver API的Repository方法
public IList<Message> ListMessagesBy(string text, IList<Tag> tags, int pageIndex, out int count, out int pageSize)
{
pageSize = 10;
var likeString = string.Format("%{0}%", text);
var query = session.QueryOver<Message>()
.Where(Restrictions.On<Message>(m => m.Text).IsLike(likeString) ||
Restrictions.On<Message>(m => m.Fullname).IsLike(likeString));
if (tags.Count > 0)
{
var tagIds = tags.Select(t => t.Id).ToList();
query
.JoinQueryOver<Tag>(m => m.Tags)
.WhereRestrictionOn(t => t.Id).IsInG(tagIds)
.TransformUsing(Transformers.DistinctRootEntity);
}
count = 0;
if(pageIndex < 0)
{
count = query.ToRowCountQuery().FutureValue<int>().Value;
pageIndex = 0;
}
return query.OrderBy(m => m.Created).Desc.Skip(pageIndex * pageSize).Take(pageSize).List();
}
Run Code Online (Sandbox Code Playgroud)
我试过了两个
.TransformUsing(Transformers.DistinctRootEntity);
Run Code Online (Sandbox Code Playgroud)
和 …
我需要一个简单的嵌入式数据库,用于相对较小的数据库大小(<100MB,但大多数情况下<20MB),平均最多1-2个并发用户/连接.它必须能够通过登录来保护/加密它的数据.
哪个数据库最适合这份工作?
第一次在StackOverflow上发布一个问题,所以请放轻松我:)
根据我的理解,正确使用模型 - 视图 - 控制器模式需要我们将视图和控制器分离,以使视图对控制器一无所知.我在使用Java Swing了解如何执行此操作时遇到了一些问题.
假设我有一个视图(一些扩展JFrame的类),这个视图有一个按钮.是否可以说我想将控制器注册为按钮的ActionListener?或者让它成为整个视图本身的倾听者.
如何在不执行以下操作的情况下执行此操作:
button.addActionListener(myController的)
在视图中,因为如果我在视图代码中这样做,它现在不会对控制器有依赖吗?
我没有发布任何代码,因为坦率地说我现在没有太多东西可以继续.
任何帮助都是有用的!
我在MVC应用程序的基本控制器中有这个代码:
protected LookUpClient GetLookupClient() {
return new LookUpClient(CurrentUser);
}
protected AdminClient GetAdminClient() {
return new AdminClient(CurrentUser);
}
protected AffiliateClient GetAffiliateClient() {
return new AffiliateClient(CurrentUser);
}
protected MembershipClient GetMembershipClient() {
return new MembershipClient(CurrentUser);
}
protected SecurityClient GetSecurityClient() {
return new SecurityClient();
}
protected ChauffeurClient GetChauffeurClient() {
return new ChauffeurClient(CurrentUser);
}
Run Code Online (Sandbox Code Playgroud)
我可以使用通用方法以某种方式合并它吗?
更新:SecurityClient()的不同构造函数是故意的.它不需要用户.
我刚刚开始使用OOP PHP并遇到了一个问题.我已经设置了一个通用的mysql类,它允许我连接到一个数据库,并有一些函数从表中获取记录:
class mysql{
//some lines to connect, followed by:
public function get_record($sql)
{
$result = mysql_result(mysql_query($sql));
return $result;
//obiously it's a bit more advanced, but you get the picture.
}
}
Run Code Online (Sandbox Code Playgroud)
接下来,我有一个类来获取用户详细信息:
class user{
__construct($id)
{
$this->id = $id
}
public function get_username($id)
{
$username = get_record("SELECT name FROM users WHERE id = '".$this->id."'");
return $username;
}
}
Run Code Online (Sandbox Code Playgroud)
我试过这个,但得到了函数get_record未知的错误.我通过添加$ mysql = new mysql()解决了这个问题.到用户类.
但是,为每个使用我的数据库方法的类(实际上都是这些方法)实例化mysql对象感觉效率很低.
有没有办法让mysql类及其方法可供所有其他类访问,而无需在每个方法中调用mysql类?
我有一个Overlay扩展,它有2个对话框作为私有属性 - 一个Dialog和一个ProgressDialog.单击MapView中的Overlay后,将出现Dialog对象.当用户单击对话框中的按钮时,它将消失并显示ProgressDialog.同时通过通知正在运行的服务来启动后台任务.任务完成后,将调用Overlay对象中的方法(buildingLoaded)以切换视图并关闭ProgressDialog.正在切换视图,正在运行代码(我使用调试器检查)但是ProgressDialog没有被解雇.我也试过hide()和cancel()方法,但没有任何效果.有人能帮助我吗?Android版本是2.2
这是代码:
public class LODOverlay extends Overlay implements OnClickListener {
private Dialog overlayDialog;
private ProgressDialog progressDialog;
..............
@Override
public void onClick(View view) {
.......
final Context ctx = view.getContext();
this.progressDialog = new ProgressDialog(ctx);
ListView lv = new ListView(ctx);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(ctx, R.layout.layerlist, names);
lv.setAdapter(adapter);
final LODOverlay obj = this;
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String name = ((TextView) view).getText().toString();
Intent getFloorIntent = new Intent(Map.RENDERER);
getFloorIntent.putExtra("type", "onGetBuildingLayer");
getFloorIntent.putExtra("id", …Run Code Online (Sandbox Code Playgroud) 我为什么要挣扎?
我有一个值:5
如何检查组"mygroup"的单选按钮值为5?
$("input[name=mygroup]").val(5); // doesn't work?
Run Code Online (Sandbox Code Playgroud) 所以,我有一个使用这样的方法定义的存储库:
IQueryable<Customer> Customers{...}
Run Code Online (Sandbox Code Playgroud)
以及其他一种过滤客户的扩展方法,如下所示:
public static IQueryable<Customer> WithID(this IQueryable<Customer> customers, int ID){...}
Run Code Online (Sandbox Code Playgroud)
这很好,让我像这样使用存储库:
var c = repo.Customers().WithID(5).Single();
Run Code Online (Sandbox Code Playgroud)
但问题是,ReSharper在这个重要时刻搞砸了自动完成.当我输入
var c = repo.Customers().Wi
Run Code Online (Sandbox Code Playgroud)
我得到了很好的Intellisense向我展示了WithID(...)方法,但是当我向下游标并点击TAB时,它没有按预期获得WithID()方法,而是返回并更改已编写的代码并且该行最终看起来像:
var c = CustomerExtensions.WithID(repo.Customers())
Run Code Online (Sandbox Code Playgroud)
这当然让我不得不回去再输入它,这次IGNORE intellisense - 恕我直言,这绝不是一件好事:)
我通过进入选项并为Intellisense指定"Visual Studio"来确认这是一个ReSharper问题.我不想回到普通工作室!
任何人都可以帮助或建议解决方法吗?
我希望MessageDlg显示在其父窗体的中心.有关如何在Delphi 2010中完成此任务的任何建议?
我在这里找到了以下代码:http://delphi.about.com/od/formsdialogs/l/aa010304a.htm但它对我不起作用.弹出窗口仍然不以所有者表单为中心.(我不清楚该方法实际上如何知道所有者形式......)
function TForm1.MessageDlg(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Integer): Integer;
begin
with CreateMessageDialog(Msg, DlgType, Buttons) do
try
Position := poOwnerFormCenter;
Result := ShowModal
finally
Free
end
end;
Run Code Online (Sandbox Code Playgroud) 我是Ruby的新手,如何计算循环中的元素?在Java中,我会这样写
int[] tablica = { 23,53,23,13 };
int sum = 0;
for (int i = 0; i <= 1; i++) { // **only first two**
sum += tablica[i];
}
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)
编辑:我只想要前两个