小编Ask*_*ein的帖子

如何从实体代理类型中获取实体 POCO 类型?

我正在将一个项目从 EF6 迁移到 EF-Core。元数据 API 发生了重大变化,我无法找到解决方案:

在 EF6 下,我可以使用以下方法从代理类型中找到 POCO 类型:

ObjectContext.GetObjectType(theEntity.GetType)
Run Code Online (Sandbox Code Playgroud)

但是,这在 EF-Core(无ObjectContext类)下不起作用。我搜索并搜索无济于事。有谁知道如何从 theentity或 the获取 POCO 类型entity proxy type

c# entity-framework-core

4
推荐指数
2
解决办法
1855
查看次数

Swagger Swashbuckle 多态性不适用于接口类型

通过下面的代码,我试图提及替代模式;它们共享相同的接口,作为响应的类型。

启动.cs

services.AddSwaggerGen(c =>
{
    c.UseOneOfForPolymorphism();
});

app.UseSwagger();
app.UseSwaggerUI(options =>
{
    options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
});
Run Code Online (Sandbox Code Playgroud)

楷模

public interface IOutput
{
    string Discriminator { get; }
}

public class OutputA : IOutput
{
    public string Discriminator => GetType().Name;

    public string PropA { get; set; }
}

public class OutputB : IOutput
{
    public string Discriminator => GetType().Name;

    public string PropB { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器

[HttpGet]
[ProducesResponseType(typeof(IOutput), StatusCodes.Status200OK)]
public IActionResult Get()
{
    return Ok();
}
Run Code Online (Sandbox Code Playgroud)

我期望这两种类型OutputA都会OutputB …

c# swagger swashbuckle asp.net-core openapi

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

ReactQuery 如何通过 Value 和/或 Reference 监控复杂的 Query Key 变化

在 ReactQuery 中,useQuery(..)钩子采用一个可以包含复杂依赖项(在数组中)的键。或者甚至只是一个int, 像todoId这样可以改变(参见文档)。

\n

或者像filters下面这样的对象:

\n
function Component() {\n  const [filters, setFilters] = React.useState()    \n  const { data } = useQuery([\'todos\', filters], () => fetchTodos(filters))\n\n  // \xe2\x9c\x85 set local state and let it "drive" the query\n  return <Filters onApply={setFilters} />\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我无法找到有关它如何监视幕后变化的解释。

\n

如果源代码中很好地解释了密钥的散列,并且这篇博客文章对值更改的事件处理/监视对我来说是一个谜。

\n

所以问题是:它如何跟踪更改,即使是在查询键数组中传递的复杂类型内部?是否发生了一些内省,将事件与值和/或参考变化联系起来?

\n

PS:这个问题也适用于 useEffect(..) 挂钩中的依赖项。我对非解释性语言普遍感到困惑。

\n

javascript reactjs react-hooks react-query

4
推荐指数
2
解决办法
2492
查看次数

实体框架 - 多对多的关系

您好,我尝试与EF Fluent API使用多对多关系.我有2个POCO课程.

public class Project
{
    public int ProjectId { get; set; }

    public virtual ICollection<Author> Authors { get; set; }

    public Project()
    {
        Authors = new List<Author>();
    }
}

public class Author
{
    public int AuthorId { get; set; }

    public virtual ICollection<Project> Projects { get; set; }

    public Author()
    {
        Projects = new List<Project>();
    }
}
Run Code Online (Sandbox Code Playgroud)

我用这部分代码映射了很多很多关系:

        ////MANY TO MANY 
        modelBuilder.Entity<Project>()
            .HasMany<Author>(a => a.Authors)
            .WithMany(p => p.Projects)
            .Map(m =>
                     {
                         m.ToTable("ProjectAuthors");
                         m.MapLeftKey("ProjectId");
                         m.MapRightKey("AuthorId");
                     });
Run Code Online (Sandbox Code Playgroud)

这在DB中创建了ProjectsAuthors表.这是我对这种关系映射案例的第一次尝试.

如果我省略了这个映射,它创建了具有类似模式的表AuthorProject.这是正确的bevahior?

c# entity-relationship many-to-many entity-framework-4.1

3
推荐指数
1
解决办法
2105
查看次数

如何在没有启动活动的情况下初始化MvvmCross框架?

在我的应用程序中,我正在创建一个广播接收器,它将监听网络变化.在OnReceive中,它将检查设备是否刚刚连接到WiFi,然后在后台开始上传.将不会显示任何活动,因此在没有启动活动的情况下初始化框架需要做什么?我不需要框架的任何页面导航部分,因此精简初始化将是最佳的.

    private override void OnReceive(Context context, Intent intent)
    {
        bool isWifiConnected = false;
        bool isMobileConnected = false;

        if (intent.Action.Equals(ConnectivityManager.ConnectivityAction))
        {
            NetworkInfo networkInfo = (NetworkInfo)intent.GetParcelableExtra(ConnectivityManager.ExtraNetworkInfo);


            if (networkInfo.IsConnected)
            {
                if (networkInfo.Type == (int)ConnectivityType.Wifi)
                {
                    isWifiConnected = true;
                }
                if (networkInfo.Type == (int)ConnectivityType.Mobile)
                {
                    isMobileConnected = true;
                }
            }
        }

        if (isWifiConnected)
        {
            StartUp(); //What do I put in this private method?
        }
Run Code Online (Sandbox Code Playgroud)

c# xamarin.android mvvmcross

3
推荐指数
1
解决办法
2821
查看次数

MonoDroid,在发布模式下没有生成APK文件

我正在使用MonoDroid和VisualStudio 2010.在发布模式下编译时,不生成APK文件(应该在编辑输出旁边的BIN文件夹中).

它过去像魅力一样工作.我无法指出我的项目配置,monodroid安装或其他什么改变了.

我只有3个警告说:

Found conflicts between different versions of the same dependent assembly.  BCom.MAF.ViewModel
Run Code Online (Sandbox Code Playgroud)

一个:

Assembly generation -- The version '1.0.0.*' specified for the 'file version' is not in the normal 'major.minor.build.revision' format  BCom.MAF.UI.Android
Run Code Online (Sandbox Code Playgroud)

这可能是一个(令人惊讶的)问题吗?

在此先感谢您的帮助.

visual-studio-2010 apk xamarin.android

3
推荐指数
1
解决办法
2236
查看次数

如何通过XAML将WPF中的小写转换为大写?

我尝试在WPF中通过XAML将大写转换为小写,如下所示:

<TextBox Height="86" CharacterCasing="Upper"/>
Run Code Online (Sandbox Code Playgroud)

我想实现用同样的场景TextBlock,LabelButton.

我该怎么做?

c# wpf xaml textbox lowercase

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

mvvmcross 导航问题,出现异常:找不到 [ViewModelName] 的视图

我似乎对如何让 MvvmCross 检测与 Mono for Android 中的视图相关联的 ViewModel 感到困惑。我试图按照 TwitterSearch 来实现导航,但它不起作用。

RequestNavigate<LoginViewModel>();
Run Code Online (Sandbox Code Playgroud)

这是我的观点:

[Activity(Label = "Login")]
public class LoginActivity : MvxBindingActivityView<LoginViewModel>
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        App.InitializeRestConnection(this);
    }

    protected override void OnViewModelSet()
    {
        SetContentView(Resource.Layout.LoginBindable);
    }

}
Run Code Online (Sandbox Code Playgroud)

这是例外:

I/ActivityManager(  307): Displayed com.desco.pendulum/pendulum.androidapp.SplashScreenActivity: +1s373ms (total +4s420ms)
I/Navigation( 8643):   0.50 Navigate to LoginViewModel with args
I/mono-stdout( 8643): Navigation:Diagnostic:  0.50 Navigate to LoginViewModel with args
I/MonoDroid( 8643): UNHANDLED EXCEPTION: System.Collections.Generic.KeyNotFoundException: Could not find view for dESCO.Mobile.ViewModels.LoginViewModel
I/MonoDroid( 8643): at Cirrious.MvvmCross.Views.MvxViewsContainer.GetViewType (System.Type) …
Run Code Online (Sandbox Code Playgroud)

c# mvvmcross

3
推荐指数
1
解决办法
4475
查看次数

如何避免在TFS 2012构建结果中拥有(或删除)PDB文件

从Visual Sturdio 2012(和TFS 2012服务器)使用DefaultTemplate时,PDB文件包含在构建目录中.我不想要他们.

有没有办法在构建过程中不生成这些文件?

要么

我该如何删除这些文件?

发现这个线程有关删除但似乎有点奇怪(没有删除活动?)也有这个答案,但不涉及XAML模板.

在此先感谢您的帮助.

xaml tfsbuild tfs2012

3
推荐指数
2
解决办法
4774
查看次数

实体框架查询中string.Trim()的行为

我正在尝试将名称列表复制到SQL Server表中,我为其设置了Entity Framework项目.

名称列表具有重复值,并且其中几个在其末尾具有空格.我希望只插入表中尚未存在的名称,以及从它们的末尾修剪空格.看起来相当简单吧?

我的解决方案是:

if (!context.Names.Any(n => n.Value == nameToCopy.Trim())
  context.Names.Add(nameToCopy.Trim())
Run Code Online (Sandbox Code Playgroud)

NB.这不是我的确切代码,只是一个例子,所以不需要提到我正在修剪两次!

令我惊讶的是,上述方法并不像我预期的那样有效.我发现,同时剖析了上述说法,认为if (!context.Names.Any(n => n.Value == nameToCopy.Trim())实际上并没有查询nameToCopy的修剪版本-几个查询名字对他们的这些末端空间.

但是,如果我执行以下操作,则按预期工作:

string trimmedName = nameToCopy.Trim()
if (!context.Names.Any(n => n.Value == trimmedName)
      context.Names.Add(trimmedName)
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么第一个解决方案不在数据库查询中使用剪裁版本的字符串?

谢谢

c# sql-server string entity-framework trim

3
推荐指数
1
解决办法
6106
查看次数