小编Mor*_*ani的帖子

如何使用实体框架在FluentAPI /数据注释中定义外键可选关系?

我有一个(示例)应用程序,代码如下:

public class Posts
{

    [Key]
    [Required]
    public int ID { get; set; }

    [Required]
    public string TypeOfPost { get; set; }

    public int PollID { get; set; }
    public virtual Poll Poll { get; set; }

    public int PostID { get; set; }
    public virtual Post Post { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

基本上,我不知道是否有更好的方法这样做,但是,我有一个帖子列表,并且,人们可以选择它是a Poll还是a Post,As Entity Framework不能与Enums一起工作,我只是将它存储为字符串TypeOfPost然后在应用程序中,我以编程方式查询Poll或Post的值TypeOfPost.

我认为无论如何设置"只需要一个"或类似,所以,我处理应用程序中的所有检查和内容.(如果有人知道更好的方法,请说出来!).

无论如何,问题是,通过进入SQL Management Studio并手动编辑模式以允许空值,我可以正常工作 - 但是,我只是无法弄清楚如何在FluentAPI中执行此操作,并需要一些帮助.

我尝试了以下两种方法:

modelBuilder.Entity<Post>()
    .HasOptional(x => x.Poll).WithOptionalDependent();

modelBuilder.Entity<Post>()
    .HasOptional(x => x.Poll).WithOptionalPrincipal();
Run Code Online (Sandbox Code Playgroud)

第一个似乎在数据库中创建了一个允许空值的附加列,而第二个列似乎没有做任何事情. …

c# ef-code-first entity-framework-4.1

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

如何在数据协定中未设置Data成员字段时,如何不返回null

我的WCF服务有一个奇怪的问题,它以JSON格式返回数据.我想根据客户发送的请求返回有关"客户"的信息.

客户可以请求他们需要的客户的哪些信息领域以及仅发送有关客户的信息的服务需求.

例如:如果客户端要求客户列表并说他们想要每个客户的名字,姓氏,城市,那么服务器应该发送一个带有每个字段名称和相应值的json响应

就像是...

[
  {"firstname":"john","lastname":"Goodman","city" :"NY"},
  {"firstname":"brad","lastname":"newman","city" :"LA"}
]
Run Code Online (Sandbox Code Playgroud)

如果客户端仅询问具有ID和城市字段的客户列表,则响应应如下所示

[
  {"id" :"1234","city" :"NY"},
  {"id":"1235","city" :"LA"}
]
Run Code Online (Sandbox Code Playgroud)

我最初的设计是实现一个"客户"类,然后将每个可能的"字段"作为该类的一个字段.然后在我的服务方法中,我获取客户端指定的字段列表,并仅使用这些属性集实例化客户对象.

我的运营合同是这样的

[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, UriTemplate = "Customers?fields={value}")]
List<Customer> GetCustomers(string value);
Run Code Online (Sandbox Code Playgroud)

但问题是我用"DataContract"装饰类,每个Field为"DataMember"....如果没有设置某些属性,它们在发送到客户端时仍然会被反序列化为NULL.我不希望这种情况发生.

此外,客户的可能字段列表很长,所以课程变得非常大.我宁愿将这些字段存储为我的服务中的枚举集合而不是类的字段.

然后我想到让我的操作返回a IDictionary<string,object>然后迭代地将每个字段和值添加到此集合中.这不起作用,因为,当字典被序列化时,它显示{"Key:dfas", "Value:34"}等等而不是我想要的

所以我有点卡住了.解决这个问题的最佳方法是什么?

我可以这样标记[DataContract]如果[DataMember]没有设置属性,即null,那么它们不应该被序列化并发送给客户端吗?

wcf serialization json datacontractserializer

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

一个迁移文件中的多个迁移语句

我试图在单个迁移文件中执行多个迁移语句,以便一次更改同一个表的多个列.

我想知道我是否以书写方式进行,或者是否有更好,更合适的方法:

迁移代码

module.exports = {
    up: function(queryInterface, Sequelize, done) {

        queryInterface.changeColumn('users', 'name', {
            type: Sequelize.STRING,
            allowNull: false,
            require: true,
            unique: true
        }).success(function() {
            queryInterface.changeColumn('users', 'address', {
                type: Sequelize.STRING,
                allowNull: false,
                require: true,
                unique: true
            }).success(function() {
                queryInterface.changeColumn('users', 'city', {
                    type: Sequelize.STRING,
                    allowNull: false,
                    require: true,
                    unique: true
                }).success(function() {
                    queryInterface.changeColumn('users', 'state', {
                        type: Sequelize.STRING,
                        allowNull: false,
                        require: true,
                        defaultValue: "ncjnbcb"
                    });
                    done();
                });
            });
        });
    }
};
Run Code Online (Sandbox Code Playgroud)

但是我面临一个错误:

TypeError:undefined不是函数

由于我在迁移中找不到任何调试错误的方法,如果有人帮助我解决它或者如果可能的话,告诉我们如何找出迁移中的错误的方式将是很好的.

migration error-handling node.js sequelize.js sails.js

10
推荐指数
4
解决办法
4942
查看次数

打字稿错误引用_this

我试图String.PrototypeTypeScript中定义一些属性:

Object.defineProperty(String.prototype, 'test', {
    value: () => {
        console.log("this is a test over text " + this);
    }
})
Run Code Online (Sandbox Code Playgroud)

javaScript原型中,this指的是调用该方法的对象(在本例中为字符串值).但编译后的文件输出是:

var _this = this;
Object.defineProperty(String.prototype, 'test', {
    value: function () {
        console.log("this is a test over text " + _this);
    }
});
Run Code Online (Sandbox Code Playgroud)

TypeScript编译器添加变量_this并引用它.

这是一个错误还是我的实施中存在问题?

javascript defineproperty typescript

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

TypeScript:如何向内置类添加静态方法

有没有无论如何反正一些静态方法添加到类型,如Date,String,Array,等?

例如,我想将方法​​添加todayDate类中,在JavaScript中我可以简单地向其添加属性,或者我可以使用Object.defineProperty:

Date.today = function(){
    let date = new Date;
    date.setHours(0,0,0,0);
    return date;
}
Run Code Online (Sandbox Code Playgroud)
Object.defineProperty(Date, 'today', { get() { ... }});
Run Code Online (Sandbox Code Playgroud)

但是我没有找到通知TypeScript这个新的静态成员.我错过了什么或者我是否以错误的方式谷歌?

class-extensions defineproperty typescript

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

在Visual Studio代码(VSCode)中,绝对路径是否可以自动完成?

在编写javascript应用程序时,可以创建一个

.ENV

根目录中的文件只包含例如:

NODE_PATH=src/
Run Code Online (Sandbox Code Playgroud)

这设置允许绝对路径,例如:在代码中的import语句中.

例如:我可以处理文件:/src/actions/index.js并输入:

import { SAVE_COMMENT } from "actions/types";
Run Code Online (Sandbox Code Playgroud)

..和导入工作,但没有自动完成,我想知道:我输入后是否可以自动完成:

import { SAVE_COMMENT } from "actions/
Run Code Online (Sandbox Code Playgroud)

相对路径查找继续工作得很好.事实上,相对路径查找是我最喜爱的VS-代码和我使用它的原因之一的功能之一,所以这将是非常好的,因为当绝对路径配置它的工作了.

autocomplete visual-studio-code

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

KendoUI设置下拉列表的宽度

我正在寻找设置KendoUI下拉列表宽度的最佳方法 - 通过Kendo HTML Helper.

@(Html.Kendo().DropDownList()
    .Name("ddlAccount")
    .DataTextField("Name")
    .DataValueField("Id")
    //This doesn't work, it styles the hidden input instead of the ddl
    .HtmlAttributes(new {style="width:200px;"})
)
Run Code Online (Sandbox Code Playgroud)

我正在设置DropDownList的宽度,但是在生成的HTML中注意,在隐藏文本输入上设置了200像素的宽度,而不是下拉列表:

<span aria-busy="false" aria-readonly="false" aria-disabled="false" aria-owns="ddlAccount_listbox" tabindex="0" aria-expanded="false" aria-haspopup="true" role="listbox" class="k-widget k-dropdown k-header styled_select" style="" unselectable="on" aria-activedescendant="ddlAccount_option_selected">

<span class="k-dropdown-wrap k-state-default">
    <span class="k-input">Choice One</span>
    <span class="k-select">
        <span class="k-icon k-i-arrow-s">select</span>
    </span>
</span>
<input id="ddlAccount" name="ddlAccount" style="width: 200px; display: none;" type="text" data-role="dropdownlist">
Run Code Online (Sandbox Code Playgroud)

...所以生成的DropDownList仍然水平和垂直滚动,这是我不想要的.

razor asp.net-mvc-4 kendo-ui

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

TypeScript 中的自动 getter 和 setter

我已经为 javaScript 创建了这个(某种自动 getter 和 setter),但我不知道如何在 typeScript 中实现它

如果可能的话,我想制作一个面向对象的版本。

javascript oop getter-setter typescript

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

多个粘性元素

如何编写无限(#stickyContainer)元素数量的代码(如下)也可以使该代码工作?现在,有一个元素正在发挥作用。

https://jsfiddle.net

function $(id) {
    return document.getElementById(id);
}

function sticky() {
    var stickyBoxHeight = $('stickyBox').offsetHeight;

    var stickyTop = $('stickyBox').getBoundingClientRect();
    var stickyBoxTop = stickyTop.top;

    var stickyBoxBottom = stickyBoxTop + stickyBoxHeight;

    var stickyHeight = $('sticky').offsetHeight;

    if (stickyBoxTop <= 0) {
        $('sticky').className = 'fixed';
    } else if (stickyBoxBottom >= stickyBoxHeight) {
        $('sticky').className = '';
    }

    if (stickyBoxBottom <= stickyHeight) {
        $('sticky').className = 'fixedBottom';
    }
}

window.onscroll = function () {
    sticky();
}
Run Code Online (Sandbox Code Playgroud)

javascript sticky

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

JavaScript连接两个Map对象

有什么方法可以将两个(或多个)Map对象连接到像数组concat这样的Map上?

var map1 = new Map([['breakfast', 'meal'], ['dinner', 'meal']]);
var map2 = new Map([['launch', 'meal'], ['dinner', 'meal']]);
var concatenated = map1.concat(map2);
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

Codeigniter DB_driver 错误

我刚刚遇到了这个错误!我是 codeigniter 的新手!我得到了正确的数据库,一切!但这个错误我不知道这是什么!你们能帮帮我吗?多谢!

Fatal error: Uncaught Error: Call to undefined function mysql_pconnect() in 
C:\xampp\htdocs\try\system\database\drivers\mysql\mysql_driver.php:92 Stack trace: 
#0 C:\xampp\htdocs\try\system\database\DB_driver.php(116): CI_DB_mysql_driver->db_pconnect() 
#1 C:\xampp\htdocs\try\system\database\DB.php(149): CI_DB_driver->initialize() 
#2 C:\xampp\htdocs\try\system\core\Loader.php(347): DB(Array, NULL) 
#3 C:\xampp\htdocs\try\application\controllers\Post.php(6): CI_Loader->database() 
#4 C:\xampp\htdocs\try\system\core\CodeIgniter.php(309): Post->__Construct() 
#5 C:\xampp\htdocs\try\index.php(202): require_once('C:\\xampp\\htdocs...') 
#6 {main} thrown in C:\xampp\htdocs\try\system\database\drivers\mysql\mysql_driver.php on line 92
Run Code Online (Sandbox Code Playgroud)

php codeigniter

0
推荐指数
1
解决办法
4148
查看次数