小编And*_*tus的帖子

EF Code First 4.1根本不支持nvarchar(max)?

我花了相当多的时间来解决这个问题,但仍然无法弄清楚为什么EF团队使用Code First让生活如此艰难.

以下是一些示例:

我的POCO:

我想要的东西看起来像:

public class Post
{
     public int Id {get; set;}
     public string Text {get; set;}
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Post>()
        .Property(p => p.Text)
        .HasColumnType("nvarchar(max)");   
}
Run Code Online (Sandbox Code Playgroud)

唯一有效的方法:

public class Post
{
     public int Id {get; set;}

     [StringLength(4000)]
     public string Text {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

问题是,在第一种情况下,我尝试插入它给我的任何东西:Validation failed for one or more entities第二种情况不适合我的商业模式.

我是唯一有这个问题的人吗?我该如何处理这件事?

orm entity-framework ef-code-first entity-framework-4.1

21
推荐指数
1
解决办法
1万
查看次数

显示运行WorkManager工作程序的详细进度

我想用新的JetPack WorkManager(链接到codelabs)组件(在应用程序的沙箱分支中)替换现有数据同步系统的作业调度方面.我现有的系统运行良好,但其中的一些新功能WorkManager会派上用场(例如链接).

我当前的系统使用共享LiveData来传递从正在进行的作业到任何UI元素(RecyclerView在我的情况下)观察它的进度(我实际上是将SwitchMapping ViewModel放入SyncItems 的列表中)

data class SyncItem(
        val title: String,
        private var _progress: Int,
        var total: Int) : BaseObservable() {

    var progress: Int
        @Bindable get() = _progress
        set(value) {
            _progress = value
            notifyPropertyChanged(BR.progress)
        }
}
Run Code Online (Sandbox Code Playgroud)

WorkManager组件有几种方法(getStatusById,getStatusesByTag等),可用于检索带有一个或多个WorkStatuses 的LiveData ,但这些只报告一个课程粒度状态(运行,成功,失败,取消).

推荐进展的方式是什么(例如'546/1234项下载')到用户界面?的setOutputData/ getOutputData对似乎是用来更之间通信Worker总比与UI(我链接时需要).

附件是当用户打开同步状态页面时(在2个项目已完成,正在进行中),它​​的外观截图(使用我的旧方法在我的应用程序的[测试]版本中).

正在进行同步的屏幕截图

在最终产品中,用户将能够取消正在进行的任何作业并重新发出一次性工作请求.通常情况下,工作将被解雇PeriodicWorkRequest.

android android-jetpack android-workmanager

5
推荐指数
2
解决办法
1921
查看次数

在 SQLite 数据库中存储 java.time.OffsetDateTime 的推荐方法

java.time.OffsetDateTime我正在寻找在 SQLite 数据库中存储 a 的最佳方法(在 Android 上,如果有帮助的话)。

出现这个问题是因为 SQLite 没有日期+时间的本机数据类型。

标准是我应该能够从以下方面产生合理的结果:

  1. 在“日期+时间”列上排序。
  2. 不会丢失微小的时间差异(毫秒)。
  3. 能够使用等效的BETWEEN或范围,WHERE
  4. 不丢失时区信息(设备可以全球使用和漫游)
  5. 希望保留一些效率。

目前我将时间戳存储为 ISO 格式的字符串。不确定这对于效率或比较来说是否理想。

也许可以选择转换为 UTC,然后转换为 long (Java),但我在 OffsetDateTime 中找不到返回自纪元以来的时间的函数(例如,Instant.ofEpochMilli)。

我应该提到的是,数据是在 Android 设备上存储和使用的。应用程序代码使用时间戳并执行简单的算术,例如“自某个事件以来过去了多少天”。因此数据正在存储类型和OffsetDateTime之间进行转换。

java sqlite android

4
推荐指数
1
解决办法
2712
查看次数

ASP.NET MVC3 fileupload无法正常工作

页面代码

<% using (Html.BeginForm())
   { %>
<fieldset>
    <legend>??????</legend>
    <input  type="file" name="File1" />
    <input  type="submit" value="??" />
</fieldset>
<%} %>
Run Code Online (Sandbox Code Playgroud)

行动代码

[HttpPost]
public ActionResult FileUpLoad(int id, FormCollection form)
{
    try
    {
        var model = db.ProjcetDeclare.First(c => c.id == id);

        if (Request.Files.Count==0)
        {
            return View();
        }
        string newFile=string.Empty;

        var File1 = Request.Files[0];
        if (File1.ContentLength == 0)
        {
        }
        newFile = model.Project.pname + DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetFileName(File1.FileName);
        File1.SaveAs(Server.MapPath("/????/" + newFile));

        model.XMCL = "/????/" + newFile;
        UpdateModel(model);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    catch
    {
        return View(); …
Run Code Online (Sandbox Code Playgroud)

asp.net file-upload asp.net-mvc-3

2
推荐指数
1
解决办法
2664
查看次数