小编adn*_*nan的帖子

如何在C#中使用一个函数将SqlDependency和SignalR与2个不同的数据库一起使用?

我有场景使用2个不同的SqlDependencies与2个不同的数据库连接,但调用一个函数.

我希望第一个数据库使用SqlDependency获取更新,然后在第一个数据库更改时同步第二个数据库,那么在第二个数据库更新时我想通过Signalr在客户端加载Kendo Grid的更改,简单的过程正在运行,但是第一次DB1更改它同步DB2然后DB2通知在客户端显示更改,但同样的过程在第二次更改DB1时,SqlDependency调用3次并通知客户端3次,第3次更改DB1其SqlDepency调用6时间或更长时间,表示下次更改后3到SqlDependency调用infite时间:

  1. EmailHub(DB2 Hub)

        public class EmailHub : Hub
        {
            private static string _connStringDB2 = ConfigurationManager.ConnectionStrings["MyDB2"].ToString();
    
            [HubMethodName("updateRecords")]
            public static void UpdateRecords()
            {
                IHubContext context = GlobalHost.ConnectionManager.GetHubContext<EmailHub>();
                context.Clients.All.getUpdates();
            }
    
        }
    
    Run Code Online (Sandbox Code Playgroud)
  2. HMailHub(DB1集线器)

        public class HMailHub : Hub
        {
            private static string _connStringDB1 = ConfigurationManager.ConnectionStrings["MyDB1"].ToString();
    
            [HubMethodName("updateRecords")]
            public static void UpdateRecords()
            {
                IHubContext context = GlobalHost.ConnectionManager.GetHubContext<EmailHub>();
                context.Clients.All.getUpdates();
            }
    
        }
    
    Run Code Online (Sandbox Code Playgroud)
  3. GetEmailMessagesSQL(DB2函数)

        public IEnumerable<EmailAflAwmMessageDM> GetEmailMessagesByAccountSQL(string emailid)
        {
            var messages = new List<EmailAflAwmMessageDM>();
    
            // sync hmailDb to LocalDb by EmailAccountId
            HMailServerSync objEmailSync = new HMailServerSync();
            objEmailSync.GetEmailMessagesByAccount(Guid.Parse(emailid)); …
    Run Code Online (Sandbox Code Playgroud)

c# sqldependency signalr kendo-grid

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

将数据从一个数据库传输到具有不同架构的另一个数据库

我在将数据从一个 sqlserver 2008 r2 传输到另一个具有不同架构的 sqlserver 2012 数据库时遇到问题,这里有一些不同的场景,

  1. 数据库 1

具有表 Firm 和 Client 的数据库 1,它们都有 FirmId 和 ClientId 主键作为 int 数据类型,FirmId 是 int 数据类型作为 Client 表中使用的引用键。

  1. 数据库2

数据库 2 具有相同的表 Firm 和 Client,它们都有 FirmId 和 ClientId 但主键作为 uniqueidentifier,FirmId 是 uniqueidentifier 数据类型作为 Client 表中使用的参考键。

  1. 问题

问题不是将数据从1个数据库表复制到2个数据库表,而是将引用键的Firm表维护到Client表中。因为有数据类型更改。

我正在使用 sql server 2008 r2 和 sql server 2012

请帮助我解决/找到解决方案,我非常感谢您的宝贵时间和精力。谢谢

database sql-server sql-scripts

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

使用 Kendo UI 数据源的 Authorization 标头拦截器

我正在使用 webapi 并限制 web api 通过令牌进行身份验证,因此为了填充数据源,我在数据源中使用请求标头。

var abcDatasource = new kendo.data.DataSource({
    transport: {
        read: {
            url: '/api/exampledata',
            dataType: 'json',
            headers: { 'Authorization': 'Bearer ' + accesstoken }
        },
    },
    pageSize: 5, 

});
Run Code Online (Sandbox Code Playgroud)

下面的代码行需要在所有数据源重复

headers: { 'Authorization': 'Bearer ' + accesstoken }
Run Code Online (Sandbox Code Playgroud)

是否可以制作中心函数来覆盖向请求标头提供令牌的剑道数据源标头?因为我有 600 多个数据源,所以我只想在一个地方设置令牌。

javascript kendo-ui asp.net-web-api kendo-datasource

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

如何在LINQ查询的where子句中将方法/函数作为IEnumerable对象调用

where在linq查询的子句中使用函数时遇到问题,如以下代码所示。

  1. 返回IEnumerable对象的函数:

    private IEnumerable filterparameter(string filter) 
    {        
        EmailAflAwmMessageDM obj = new EmailAflAwmMessageDM();
    
        if (filter == "attachments")
        {
            return obj.attachments;
        }
        else if (filter == "flagged")
        {
            return obj.flagged;
        }
        else
        {
            return obj.seen;
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 返回的函数IQuerable,将在Web api函数中使用:

    private IQueryable SearchFilterCondition(string filter,string value)
    {
        var emailmessage = from a in db.EmailAflAwmMessage
                           where (filterparameter(filter) == value)
                           orderby a.msg_date descending
                           select new
                           {
                               a.subject,
                               a.msg_date,         
                           };
        return emailmessage;
    }
    
    Run Code Online (Sandbox Code Playgroud)

更新:此错误

{"Message":"An error has occurred.",
"ExceptionMessage":"The 'ObjectContent`1' type …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

具有一个固定动作的MVC路由和具有多个可选参数的控制器

基本上我有一个问题,我想在多个控制器中进行一个默认操作,并使用我的自定义URL的多个可选参数,如下所示:

www.mydomain.com/{controller name}/{v1}/{v2}/{v3}/{v4}

并且也不希望在url中使用动作名称.我在routeconfig.cs中有这个路由

routes.MapRoute(
    name: "Blog",
    url: "{controller}/{v1}/{v2}/{v3}/{v4}",
    defaults: new
    {
        controller = "Blog",
        action = "searchBlog",
        v1 = UrlParameter.Optional,
        v2 = UrlParameter.Optional,
        v3 = UrlParameter.Optional,
        v4 = UrlParameter.Optional
    });

routes.MapRoute(
    name: "Forum",
    url: "{controller}/{v1}/{v2}/{v3}/{v4}",
    defaults: new
    {
        controller = "Forum",
        action = "searchForum",
        v1 = UrlParameter.Optional,
        v2 = UrlParameter.Optional,
        v3 = UrlParameter.Optional,
        v4 = UrlParameter.Optional
    });
Run Code Online (Sandbox Code Playgroud)

行动 BlogController

public ActionResult searchBlog(string v1=null,string v2 = null, string  v3 = null, string v4 = null)
{
    // use optional parameters …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-routing

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

为什么实体框架在保存到数据库时会截断字符串值?

我的实体框架有问题,它在保存到数据库时截断字符串值

Description nvarchar(max)在 SQL Server 2014 中有数据库列,并且在我的模型类上有这样的属性:

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

我用这段代码插入数据库

db.EnitityName.Add(object);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

通常它可以保存记录,没有问题,但是当属性中的字符串超过40k字符时Description,它保存的值会被截断到40k以上的最后一个字符。

例如,我们有一个 50k 字符的字符串,它仅保存前 40k 字符并截断最后 10k 字符。

我是否做错了什么,或者实体框架对字符串长度有限制,或者 nvarchar(max) 中的数据库限制?

请帮助我,非常感谢您提前宝贵的时间。

谢谢

c# string entity-framework

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