小编Dan*_*ola的帖子

实体框架5首先使用代码进行密钥命名

当我的密钥名称(索引,主键和外键)由Add-Migration生成时,我不能有[.](句点),所以我尝试编写CSharpMigrationCodeGenerator,但不幸的是,这似乎不允许您要更改外键或索引名称.主键名称可以设置为覆盖create table的一部分:

protected override void Generate(
    CreateTableOperation createTableOperation, IndentedTextWriter writer)
    {
        createTableOperation.PrimaryKey.Name = "USE THIS NAME";
        base.Generate(createTableOperation, writer);
    }
Run Code Online (Sandbox Code Playgroud)

但我真正需要的是一种方法来确保它刚刚删除完全停止(这意味着覆盖自定义名称生成器) - 但我看不到如何做到这一点.

c# code-generation entity-framework-5

8
推荐指数
1
解决办法
594
查看次数

实体框架6异常:"在创建模型时不能使用上下文"

当它从旧式的ADO.NET进入实体框架6时,我有点新鲜,所以请耐心等待.

我正在尝试创建一个新的WPF MVVM项目以及一些WinForms,它们将直接使用DBContext而不与EF 6进行数据绑定.

使用Visual Studio 2013实体框架向导,我通过逆向工程创建了代码优先于业务服务器上的当前数据库.然后我将数据模型类与上下文分开

这是DbContext代码:

namespace EFModels
{
    public partial class MyDataContext : DbContext
    {
        public MyDataContext () : base("name=MyDataContext")
        {
        }

        public virtual DbSet<Calibration> Calibrations { get; set; }
        public virtual DbSet<OrderDetail> OrderDetails { get; set; }
        public virtual DbSet<OrderHistory> OrderHistories { get; set; } 
        public virtual DbSet<WorkDetail> WorkDetails { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {   
            modelBuilder.Entity<WorkDetail>()
                    .HasMany(e => e.Calibrations)
                    .WithOptional(e => e.WorkDetail)
                    .HasForeignKey(e => e.WorkID);  
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework-6

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

Ninject 2.1 ActivationException:激活字符串时出错

我很困惑为什么我收到"Ninject.ActivationException:错误激活字符串没有匹配的绑定可用,并且类型不可自绑定"在随机绑定中.如果我保留IMedia的绑定,它将抛出ActivationException,但如果我使用CallbackProvider它就可以工作.所有这些类的结构都相同,只有几个不同的属性.我很困惑为什么ILocationType,IMedia和IFarmDataContext抛出ActivationException而其他人没有.有任何想法吗?

/******************************
 * Core Types
 ******************************/
Bind<IFarmDataContext>().ToProvider(new CallbackProvider<IFarmDataContext>(delegate { return new FarmDataContext(); }));

//Media
Bind<IMedia>().To<Media>(); //blows up
//Bind<IMedia>().ToProvider(new CallbackProvider<IMedia>(delegate { return new Media(); }));
Bind<IMediaType>().To<MediaType>();
Bind<IMediaRelated>().To<MediaRelated>();

//Location
Bind<ILocation>().To<Location>();
Bind<ILocationType>().ToProvider(new CallbackProvider<ILocationType>(delegate { return new LocationType(); }));
Bind<ILocationDetail>().To<LocationDetail>();
Run Code Online (Sandbox Code Playgroud)

c# ninject inversion-of-control

7
推荐指数
1
解决办法
4877
查看次数

c# - 简单二叉树

所以,过去一个月我一直在学习C#,而目前我正在与Binary Trees进行斗争.

我的问题是,如何将我的树调用到控制台窗口?我试过Console.WriteLine(tree.Data);但这似乎写54到我的控制台窗口.

如果你需要检查一下,这是我的代码:

主文件

static void Main(string[] args)
{
    //Creating the Nodes for the Tree
    Node<int> tree = new Node<int>('6');
    tree.Left = new Node<int>('2');
    tree.Right = new Node<int>('5');  

    Console.WriteLine("Binary Tree Display");
    Console.WriteLine(tree.Data);
    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

节点类

class Node<T> where T : IComparable
{
    private T data;
    public Node<T> Left, Right;

    public Node(T item)
    {
        data = item;
        Left = null;
        Right = null;
    }
    public T Data
    {
        set { data = value; }
        get { return data; …
Run Code Online (Sandbox Code Playgroud)

c# binary-tree

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

所有TextBox的一个事件

我在WPF C#中做了一个简单的程序而且我有很多TextBoxes- 每个都TextBox做同样的事情而且我很懒都为每个事件编写每个事件TextBox.那么,有没有办法如何TextBox通过一个事件服务所有人?

有一个简短的代码:

private void OnMouseLeft(object sender, MouseButtonEventArgs e)
{
    TextBox1.Text = string.Empty;
    TextBox1.Foreground = Brushes.Black;
}
private void OnMouseLeft1(object sender, MouseButtonEventArgs e)
{
    TextBox2.Text = string.Empty;
    TextBox2.Foreground = Brushes.Black;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!:)

c# wpf events textbox

6
推荐指数
1
解决办法
4483
查看次数

ViewModelBuilder泛型投射问题

围绕着这个我的大脑无济于事,想知道是否有人可以提供帮助?

得到一个非常令人沮丧的演员问题,我肯定会有一个快速回答,但可能只是由于我对泛型类型推断或其他东西的有限理解而发生.

提前致谢!

场景是一个向导站点的"步骤"ViewModel.我正在为每个人创建Builder类,并使用工厂来获取特定的构建器,以获取返回给我的步骤,这是一个IStepViewModel的集合.

public interface IStepViewModelBuilderFactory
{
    IStepModelBuilder<T> Create<T>(T stepViewModel) where T : IStepViewModel;
    void Release<T>(IStepModelBuilder<T> stepViewModelBuilder) where T : IStepViewModel;
}

public interface IStepViewModel
{
}

public interface IStepModelBuilder<TStepViewModel> : IModelBuilder<TStepViewModel> where TStepViewModel : IStepViewModel
{
}

public class SpecificViewModelBuilder : IStepModelBuilder<SpecificStepViewModel>
{
}

public class SpecificStepViewModel: StepViewModel
{
}

public abstract class StepViewModel : IStepViewModel
{
}
Run Code Online (Sandbox Code Playgroud)

失败的测试!

[Test]
public void TestResolution()
{
    var factory = this.container.Resolve<IStepViewModelBuilderFactory>();

    IStepViewModel viewModel = new SpecificStepViewModel();

    var builder = factory.Create(viewModel); // …
Run Code Online (Sandbox Code Playgroud)

.net c# generics casting

5
推荐指数
1
解决办法
228
查看次数

以 Base64 编码编写 XML

在我提出有关存储数据的问题后,有人建议我可以使用 XML,然后通过使用 Base64 对其进行编码来混淆文件。我喜欢这个想法,并且我已经在 XML 中实现了我想要的,但我不知道如何将其保存为 Base64。到目前为止,这是我的代码:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;

XmlWriter write = XmlWriter.Create("C:\\Users\\Andy\\Desktop\\database.xml", settings);
write.WriteStartDocument();
write.WriteStartElement("Database");
write.WriteStartElement("Entry");
write.WriteAttributeString("key", "value");
write.WriteEndElement();
write.WriteEndElement();

write.Flush();
write.Close();
Run Code Online (Sandbox Code Playgroud)

.net c# xml base64

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

关于继承C#

我试图了解继承如何在C#中工作.我写了以下代码:

class Program
{
    static void Main(string[] args)
    {
        Animal animal = new Dog();
        animal.OverRideMe();
        //animal.NewMethod();
        Dog dog = (Dog)animal;
        dog.OverRideMe();
        dog.NewMethod();
        Console.Read();
    }
}
public abstract class Animal
{
    public Animal()
    {
        Console.WriteLine("Base Constructor");
    }
    public virtual void OverRideMe()
    {
        Console.WriteLine("In Base Class's OverRideMe");
        Console.Read();
    }
}
public class Dog : Animal
{
    public Dog()
    {
        Console.WriteLine("Derived Constructor");
    }
    public override void OverRideMe()
    {
        Console.WriteLine("In Derived Class's OverRideMe");
        Console.Read();
    }
    public void NewMethod()
    {
        Console.WriteLine("In Derived Class's NewMethod");
        Console.Read(); …
Run Code Online (Sandbox Code Playgroud)

c# inheritance

5
推荐指数
1
解决办法
217
查看次数

如何读取和更改Response的主体到覆盖OnActionExecuted方法的Controller

我需要为控制器的每个动作的每个JSON答案附加一些信息.为此,我使基本控制器继承自标准MVC Controller类.我试着这样.但我抓住ArgumentException了这样的信息"Stream不可读".当ActionResult对象将数据写入正文时,可能会关闭流.我能做什么?

public override void OnActionExecuted(ActionExecutedContext context)
{
    var respApi = new ResponseApiDTO();
    respApi.Comment = "You could!!!";
    JObject jRespApi = JObject.FromObject(respApi);
    Stream bodyStream = context.HttpContext.Response.Body;
    JObject jbody;

    context.Result = Json(jbody);
    using( var rd = new StreamReader(bodyStream))
    {
        string bodyText = rd.ReadToEnd();
        jbody = (JObject)JsonConvert.DeserializeObject(bodyText);
        jbody.Add(jRespApi);
        context.Result = Json(jbody);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api asp.net-core asp.net-core-webapi

5
推荐指数
1
解决办法
4852
查看次数

Command.ExecuteScalar始终返回null,而Management Studio中的存储过程运行正常

我有以下SQL存储过程,其中包含一个输入参数和一个out参数.

CREATE PROCEDURE [dbo].[spCanUserEdit]
(
@username nvarchar(255)
)
AS
BEGIN
SET NOCOUNT ON;

DECLARE @CanEdit bit

SELECT
    @CanEdit = CanUserEdit
FROM tblUsers
WHERE username = LOWER(@username)
RETURN SELECT @CanEdit
END
GO
Run Code Online (Sandbox Code Playgroud)

在上面的存储过程中,CanUserEdittblUsers是位类型列,默认值为0.现在,当我在Management Studio中执行此过程时,它运行正常,但是当我command.ExecuteScalar()在我的C#代码中使用时,它总是返回null.谁能告诉我这里我做错了什么.

以下是我的C#方法

public static bool CanUserEdit(string userName)
{
    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[Constants.ConnectionStringName].ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "spCanUserEdit";
            cmd.Connection = conn;

            cmd.Parameters.Add(new SqlParameter("@username", userName));

            conn.Open();
            bool canEdit = (bool)cmd.ExecuteScalar();

            return …
Run Code Online (Sandbox Code Playgroud)

c# sql stored-procedures

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